From ad2d2060ab9c191efcdf1c9f9fb254d9649ec5d7 Mon Sep 17 00:00:00 2001 From: adilger <adilger> Date: Tue, 27 Jan 2004 23:39:17 +0000 Subject: [PATCH] Don't dereference NULL dentry for NFS root (BG/l testing). b=2464 --- .../patches/vfs_intent-2.4.18-18-chaos65.patch | 10 +++++----- .../patches/vfs_intent-2.4.19-pre1.patch | 4 ++-- .../patches/vfs_intent-2.4.19-suse.patch | 4 ++-- .../patches/vfs_intent-2.4.20-hp.patch | 4 ++-- .../patches/vfs_intent-2.4.20-rh.patch | 18 +++++++++--------- .../patches/vfs_intent-2.4.20-vanilla.patch | 14 +++++++------- .../patches/vfs_intent-2.4.21-chaos.patch | 4 ++-- .../patches/vfs_intent-2.4.21-suse2.patch | 4 ++-- .../patches/vfs_intent-2.4.22-rh.patch | 4 ++-- 9 files changed, 33 insertions(+), 33 deletions(-) diff --git a/lustre/kernel_patches/patches/vfs_intent-2.4.18-18-chaos65.patch b/lustre/kernel_patches/patches/vfs_intent-2.4.18-18-chaos65.patch index 7f16189f7b..2efed4f46f 100644 --- a/lustre/kernel_patches/patches/vfs_intent-2.4.18-18-chaos65.patch +++ b/lustre/kernel_patches/patches/vfs_intent-2.4.18-18-chaos65.patch @@ -467,11 +467,11 @@ + &dentry->d_name, 0, NULL); + d_invalidate(dentry); + dput(dentry); -+ if (IS_ERR(new)) { -+ err = PTR_ERR(new); -+ break; -+ } -+ nd->dentry = new; ++ if (IS_ERR(new)) { ++ err = PTR_ERR(new); ++ break; ++ } ++ nd->dentry = new; + } + } + else if (dentry && dentry->d_op && dentry->d_op->d_revalidate){ diff --git a/lustre/kernel_patches/patches/vfs_intent-2.4.19-pre1.patch b/lustre/kernel_patches/patches/vfs_intent-2.4.19-pre1.patch index 43abf92c18..98fd55045e 100644 --- a/lustre/kernel_patches/patches/vfs_intent-2.4.19-pre1.patch +++ b/lustre/kernel_patches/patches/vfs_intent-2.4.19-pre1.patch @@ -1621,9 +1621,9 @@ Index: linux-2.4.19-pre1/include/linux/dcache.h + void (*d_unpin)(struct dentry *, struct vfsmount *, int); }; -+#define PIN(de,mnt,flag) if (de->d_op && de->d_op->d_pin) \ ++#define PIN(de,mnt,flag) if (de && de->d_op && de->d_op->d_pin) \ + de->d_op->d_pin(de, mnt, flag); -+#define UNPIN(de,mnt,flag) if (de->d_op && de->d_op->d_unpin) \ ++#define UNPIN(de,mnt,flag) if (de && de->d_op && de->d_op->d_unpin) \ + de->d_op->d_unpin(de, mnt, flag); + + diff --git a/lustre/kernel_patches/patches/vfs_intent-2.4.19-suse.patch b/lustre/kernel_patches/patches/vfs_intent-2.4.19-suse.patch index 4e37bb8b9c..b49babdb86 100644 --- a/lustre/kernel_patches/patches/vfs_intent-2.4.19-suse.patch +++ b/lustre/kernel_patches/patches/vfs_intent-2.4.19-suse.patch @@ -1601,9 +1601,9 @@ Index: linux-2.4.19.SuSE/include/linux/dcache.h + void (*d_unpin)(struct dentry *, struct vfsmount *, int); }; -+#define PIN(de,mnt,flag) if (de->d_op && de->d_op->d_pin) \ ++#define PIN(de,mnt,flag) if (de && de->d_op && de->d_op->d_pin) \ + de->d_op->d_pin(de, mnt, flag); -+#define UNPIN(de,mnt,flag) if (de->d_op && de->d_op->d_unpin) \ ++#define UNPIN(de,mnt,flag) if (de && de->d_op && de->d_op->d_unpin) \ + de->d_op->d_unpin(de, mnt, flag); + + diff --git a/lustre/kernel_patches/patches/vfs_intent-2.4.20-hp.patch b/lustre/kernel_patches/patches/vfs_intent-2.4.20-hp.patch index 8cd3657171..a632e000a7 100644 --- a/lustre/kernel_patches/patches/vfs_intent-2.4.20-hp.patch +++ b/lustre/kernel_patches/patches/vfs_intent-2.4.20-hp.patch @@ -1675,9 +1675,9 @@ + void (*d_unpin)(struct dentry *, struct vfsmount *, int); }; -+#define PIN(de,mnt,flag) if (de->d_op && de->d_op->d_pin) \ ++#define PIN(de,mnt,flag) if (de && de->d_op && de->d_op->d_pin) \ + de->d_op->d_pin(de, mnt, flag); -+#define UNPIN(de,mnt,flag) if (de->d_op && de->d_op->d_unpin) \ ++#define UNPIN(de,mnt,flag) if (de && de->d_op && de->d_op->d_unpin) \ + de->d_op->d_unpin(de, mnt, flag); + + diff --git a/lustre/kernel_patches/patches/vfs_intent-2.4.20-rh.patch b/lustre/kernel_patches/patches/vfs_intent-2.4.20-rh.patch index 7334495679..f9096db9eb 100644 --- a/lustre/kernel_patches/patches/vfs_intent-2.4.20-rh.patch +++ b/lustre/kernel_patches/patches/vfs_intent-2.4.20-rh.patch @@ -374,11 +374,11 @@ + &dentry->d_name, 0, NULL); + d_invalidate(dentry); + dput(dentry); -+ if (IS_ERR(new)) { -+ err = PTR_ERR(new); -+ break; -+ } -+ nd->dentry = new; ++ if (IS_ERR(new)) { ++ err = PTR_ERR(new); ++ break; ++ } ++ nd->dentry = new; + } + } else if (dentry && dentry->d_op && dentry->d_op->d_revalidate) { @@ -1473,8 +1473,8 @@ { struct inode * inode = dentry->d_inode; - if (inode->i_op && inode->i_op->revalidate) -+ if (!inode) -+ return -ENOENT; ++ if (!inode) ++ return -ENOENT; + if (inode->i_op && inode->i_op->revalidate_it) + return inode->i_op->revalidate_it(dentry, it); + else if (inode->i_op && inode->i_op->revalidate) @@ -1608,9 +1608,9 @@ + void (*d_unpin)(struct dentry *, struct vfsmount *, int); }; -+#define PIN(de,mnt,flag) if (de->d_op && de->d_op->d_pin) \ ++#define PIN(de,mnt,flag) if (de && de->d_op && de->d_op->d_pin) \ + de->d_op->d_pin(de, mnt, flag); -+#define UNPIN(de,mnt,flag) if (de->d_op && de->d_op->d_unpin) \ ++#define UNPIN(de,mnt,flag) if (de && de->d_op && de->d_op->d_unpin) \ + de->d_op->d_unpin(de, mnt, flag); + + 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 3eca972e5f..c4c79b1a6b 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 @@ -419,11 +419,11 @@ + &dentry->d_name, 0, NULL); + d_invalidate(dentry); + dput(dentry); -+ if (IS_ERR(new)) { -+ err = PTR_ERR(new); -+ break; -+ } -+ nd->dentry = new; ++ if (IS_ERR(new)) { ++ err = PTR_ERR(new); ++ break; ++ } ++ nd->dentry = new; + } + } else if (dentry && dentry->d_op && dentry->d_op->d_revalidate) { @@ -1583,9 +1583,9 @@ + void (*d_unpin)(struct dentry *, struct vfsmount *, int); }; -+#define PIN(de,mnt,flag) if (de->d_op && de->d_op->d_pin) \ ++#define PIN(de,mnt,flag) if (de && de->d_op && de->d_op->d_pin) \ + de->d_op->d_pin(de, mnt, flag); -+#define UNPIN(de,mnt,flag) if (de->d_op && de->d_op->d_unpin) \ ++#define UNPIN(de,mnt,flag) if (de && de->d_op && de->d_op->d_unpin) \ + de->d_op->d_unpin(de, mnt, flag); + + diff --git a/lustre/kernel_patches/patches/vfs_intent-2.4.21-chaos.patch b/lustre/kernel_patches/patches/vfs_intent-2.4.21-chaos.patch index 6affaedee9..1ceb50d17c 100644 --- a/lustre/kernel_patches/patches/vfs_intent-2.4.21-chaos.patch +++ b/lustre/kernel_patches/patches/vfs_intent-2.4.21-chaos.patch @@ -1605,9 +1605,9 @@ Index: linux-2.4.21-chaos/include/linux/dcache.h + void (*d_unpin)(struct dentry *, struct vfsmount *, int); }; -+#define PIN(de,mnt,flag) if (de->d_op && de->d_op->d_pin) \ ++#define PIN(de,mnt,flag) if (de && de->d_op && de->d_op->d_pin) \ + de->d_op->d_pin(de, mnt, flag); -+#define UNPIN(de,mnt,flag) if (de->d_op && de->d_op->d_unpin) \ ++#define UNPIN(de,mnt,flag) if (de && de->d_op && de->d_op->d_unpin) \ + de->d_op->d_unpin(de, mnt, flag); + + diff --git a/lustre/kernel_patches/patches/vfs_intent-2.4.21-suse2.patch b/lustre/kernel_patches/patches/vfs_intent-2.4.21-suse2.patch index 1e78f10ddf..98c6c37800 100644 --- a/lustre/kernel_patches/patches/vfs_intent-2.4.21-suse2.patch +++ b/lustre/kernel_patches/patches/vfs_intent-2.4.21-suse2.patch @@ -1613,9 +1613,9 @@ Index: linux-2.4.21-suse2/include/linux/dcache.h + void (*d_unpin)(struct dentry *, struct vfsmount *, int); }; -+#define PIN(de,mnt,flag) if (de->d_op && de->d_op->d_pin) \ ++#define PIN(de,mnt,flag) if (de && de->d_op && de->d_op->d_pin) \ + de->d_op->d_pin(de, mnt, flag); -+#define UNPIN(de,mnt,flag) if (de->d_op && de->d_op->d_unpin) \ ++#define UNPIN(de,mnt,flag) if (de && de->d_op && de->d_op->d_unpin) \ + de->d_op->d_unpin(de, mnt, flag); + + diff --git a/lustre/kernel_patches/patches/vfs_intent-2.4.22-rh.patch b/lustre/kernel_patches/patches/vfs_intent-2.4.22-rh.patch index 5f266a8673..ace8619f43 100644 --- a/lustre/kernel_patches/patches/vfs_intent-2.4.22-rh.patch +++ b/lustre/kernel_patches/patches/vfs_intent-2.4.22-rh.patch @@ -1583,9 +1583,9 @@ + void (*d_unpin)(struct dentry *, struct vfsmount *, int); }; -+#define PIN(de,mnt,flag) if (de->d_op && de->d_op->d_pin) \ ++#define PIN(de,mnt,flag) if (de && de->d_op && de->d_op->d_pin) \ + de->d_op->d_pin(de, mnt, flag); -+#define UNPIN(de,mnt,flag) if (de->d_op && de->d_op->d_unpin) \ ++#define UNPIN(de,mnt,flag) if (de && de->d_op && de->d_op->d_unpin) \ + de->d_op->d_unpin(de, mnt, flag); + + -- GitLab