Whamcloud - gitweb
Branch HEAD
[fs/lustre-release.git] / lustre / kernel_patches / patches / vfs_intent-2.4.20-vanilla.patch
index 737f366..3205465 100644 (file)
@@ -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,