[lkml]   [2006]   [Oct]   [31]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
Messages in this thread
    Subject[Q] missing ->d_delete() in shrink_dcache_for_umount()?

    Vasily Averin wrote:
    > Hello folks,
    > I would like to ask you clarify me one question in the the following patch:
    > # ChangeSet
    > # 2006/06/22 15:05:57-07:00
    > # [PATCH] Fix dcache race during umount
    > # If prune_dcache finds a dentry that it cannot free, it leaves it where it
    > # is (at the tail of the list) and exits, on the assumption that some other
    > # thread will be removing that dentry soon.

    It looks like I've noticed yet one suspicious place in your patch. As far as I
    see you have removed dput(root) call in shrink_dcache_for_umount() function.
    However I would note that dput contains ->d_delete() call that is missing in
    your function:

    if (dentry->d_op && dentry->d_op->d_delete) {
    if (dentry->d_op->d_delete(dentry))
    goto unhash_it;

    I'm not sure but it seems to me some (probably out-of-tree) filesystems can do
    something useful in this place.

    Thank you,
    Vasily Averin
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to
    More majordomo info at
    Please read the FAQ at

     \ /
      Last update: 2006-10-31 14:27    [W:0.020 / U:34.596 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site