dir.c | 5 +++++ 1 files changed, 5 insertions(+) diff -u --recursive --new-file --show-c-function linux-2.6.3-05-msync/fs/nfs/dir.c linux-2.6.3-06-fix_oops/fs/nfs/dir.c --- linux-2.6.3-05-msync/fs/nfs/dir.c 2004-02-14 16:44:35.000000000 +0100 +++ linux-2.6.3-06-fix_oops/fs/nfs/dir.c 2004-02-14 21:38:41.000000000 +0100 @@ -666,6 +666,11 @@ static int nfs_dentry_delete(struct dent /* Unhash it, so that ->d_iput() would be called */ return 1; } + if (!(dentry->d_sb->s_flags & MS_ACTIVE)) { + /* Unhash it, so that ancestors of killed async unlink + * files will be cleaned up during umount */ + return 1; + } return 0; }