From 5bf695d544e81fcd8c1b3abc6c38b45f0e3e9ab7 Mon Sep 17 00:00:00 2001 From: Steven Whitehouse Date: Wed, 21 Jun 2006 15:38:17 -0400 Subject: [PATCH] --- yaml --- r: 38721 b: refs/heads/master c: d9d1ca30505c6fed867e1724b16fdad0c281d7d1 h: refs/heads/master i: 38719: 6b1cf44aae1722b90857cc83af68278fd044c39b v: v3 --- [refs] | 2 +- trunk/fs/gfs2/ops_inode.c | 16 +++++++++++----- 2 files changed, 12 insertions(+), 6 deletions(-) diff --git a/[refs] b/[refs] index a67a7d6bead0..22484b29bfdb 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: bf9f424d9acf461fabcb0e9f47b356e08186d91f +refs/heads/master: d9d1ca30505c6fed867e1724b16fdad0c281d7d1 diff --git a/trunk/fs/gfs2/ops_inode.c b/trunk/fs/gfs2/ops_inode.c index 2fe37aeac7b0..3a2769ebfe4a 100644 --- a/trunk/fs/gfs2/ops_inode.c +++ b/trunk/fs/gfs2/ops_inode.c @@ -615,13 +615,19 @@ static int gfs2_rename(struct inode *odir, struct dentry *odentry, goto out_gunlock_r; } + num_gh = 1; gfs2_holder_init(odip->i_gl, LM_ST_EXCLUSIVE, 0, ghs); - gfs2_holder_init(ndip->i_gl, LM_ST_EXCLUSIVE, 0, ghs + 1); - gfs2_holder_init(ip->i_gl, LM_ST_EXCLUSIVE, 0, ghs + 2); - num_gh = 3; + if (odip != ndip) { + gfs2_holder_init(ndip->i_gl, LM_ST_EXCLUSIVE, 0, ghs + num_gh); + num_gh++; + } + gfs2_holder_init(ip->i_gl, LM_ST_EXCLUSIVE, 0, ghs + num_gh); + num_gh++; - if (nip) - gfs2_holder_init(nip->i_gl, LM_ST_EXCLUSIVE, 0, ghs + num_gh++); + if (nip) { + gfs2_holder_init(nip->i_gl, LM_ST_EXCLUSIVE, 0, ghs + num_gh); + num_gh++; + } error = gfs2_glock_nq_m(num_gh, ghs); if (error)