Whamcloud - gitweb
Merge b1_4_smallfix from b1_4 (20040914_1215) (land b_confobd, liblustre fixes)
authoradilger <adilger>
Tue, 14 Sep 2004 22:36:54 +0000 (22:36 +0000)
committeradilger <adilger>
Tue, 14 Sep 2004 22:36:54 +0000 (22:36 +0000)
lustre/kernel_patches/patches/vfs_intent-2.4.20-hp.patch
lustre/kernel_patches/patches/vfs_intent-2.4.21-suse2.patch

index 2af2a04..8014b63 100644 (file)
@@ -357,7 +357,7 @@ Index: linux/fs/namei.c
                                break;
                }
                goto return_base;
-@@ -633,6 +687,27 @@
+@@ -633,6 +687,34 @@
                 * Check the cached dentry for staleness.
                 */
                dentry = nd->dentry;
@@ -381,6 +381,13 @@ Index: linux/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;
index 85f8cf4..aca56c7 100644 (file)
@@ -300,7 +300,7 @@ Index: linux-2.4.21-x86_64/fs/namei.c
                                break;
                }
                goto return_base;
-@@ -643,6 +680,27 @@
+@@ -643,6 +680,34 @@
                 * Check the cached dentry for staleness.
                 */
                dentry = nd->dentry;
@@ -324,6 +324,13 @@ Index: linux-2.4.21-x86_64/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;