X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;ds=sidebyside;f=lustre%2Fkernel_patches%2Fpatches%2Fvfs_intent-2.4.20-vanilla.patch;h=3205465e098da037643be983fdb33003471a37c9;hb=9b6f9d17a35188f5f4dbfae840164b999a7a78a2;hp=737f366d8e04ee911b0e980c9061b6e84ce978ed;hpb=2dc9c16e770415d56839e1996015fec5fab93f29;p=fs%2Flustre-release.git diff --git a/lustre/kernel_patches/patches/vfs_intent-2.4.20-vanilla.patch b/lustre/kernel_patches/patches/vfs_intent-2.4.20-vanilla.patch index 737f366..3205465 100644 --- a/lustre/kernel_patches/patches/vfs_intent-2.4.20-vanilla.patch +++ b/lustre/kernel_patches/patches/vfs_intent-2.4.20-vanilla.patch @@ -294,7 +294,7 @@ Index: linux-2.4.24/fs/namei.c break; } goto return_base; -@@ -635,6 +672,27 @@ return_reval: +@@ -635,6 +672,34 @@ return_reval: * Check the cached dentry for staleness. */ dentry = nd->dentry; @@ -318,6 +318,13 @@ Index: linux-2.4.24/fs/namei.c + } + if (!nd->dentry->d_inode) + goto no_inode; ++ if (lookup_flags & LOOKUP_DIRECTORY) { ++ err = -ENOTDIR; ++ if (!nd->dentry->d_inode->i_op || ++ (!nd->dentry->d_inode->i_op->lookup && ++ !nd->dentry->d_inode->i_op->lookup_it)) ++ break; ++ } + } else if (dentry && dentry->d_op && dentry->d_op->d_revalidate) { err = -ESTALE; @@ -924,7 +931,7 @@ Index: linux-2.4.24/fs/namespace.c int retval = 0; int mnt_flags = 0; -@@ -725,9 +732,11 @@ long do_mount(char * dev_name, char * di +@@ -725,10 +732,11 @@ long do_mount(char * dev_name, char * di flags &= ~(MS_NOSUID|MS_NOEXEC|MS_NODEV); /* ... and get the mountpoint */ @@ -934,10 +941,11 @@ Index: linux-2.4.24/fs/namespace.c + if (retval) { + intent_release(&it); return retval; +- + } - if (flags & MS_REMOUNT) retval = do_remount(&nd, flags & ~MS_REMOUNT, mnt_flags, + data_page); @@ -739,6 +747,8 @@ long do_mount(char * dev_name, char * di else retval = do_add_mount(&nd, type_page, flags, mnt_flags,