lkml.org 
[lkml]   [2002]   [Sep]   [5]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    /
    Date
    SubjectRe: invalidate_inode_pages in 2.5.32/3
    From
    >>>>> " " == Andrew Morton <akpm@zip.com.au> writes:

    > Probably, it worked OK with the global locking because nobody
    > was taking a temp ref against those pages.

    But we still have global locking in that readdir by means of the
    BKL. There should be no nasty races...

    > Please tell me exactly what semantics NFS needs in there. Does
    > truncate_inode_pages() do the wrong thing?

    Definitely. In most cases we *cannot* wait on I/O completion because
    nfs_zap_caches() can be called directly from the 'rpciod' process by
    means of a callback. Since 'rpciod' is responsible for completing all
    asynchronous I/O, then truncate_inode_pages() would deadlock.

    As I said: I don't believe the problem here has anything to do with
    invalidate_inode_pages vs. truncate_inode_pages:
    - Pages should only be locked if they are actually being read from
    the server.
    - They should only be refcounted and/or cleared while the BKL is
    held...
    There is no reason why code which worked fine under 2.2.x and 2.4.x
    shouldn't work under 2.5.x.

    Cheers,
    Trond
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/

    \
     
     \ /
      Last update: 2005-03-22 13:28    [W:0.109 / U:60.972 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site