Commit 4327a9bf authored by Bob Peterson's avatar Bob Peterson Committed by Steven Whitehouse

GFS2: Eliminate redundant buffer_head manipulation in gfs2_unlink_inode

Since we now have a dirty_inode that takes care of manipulating the
inode buffer and writing from the inode to the buffer, we can
eliminate some unnecessary buffer manipulations in gfs2_unlink_inode
that are now redundant.
Signed-off-by: default avatarBob Peterson <rpeterso@redhat.com>
Signed-off-by: default avatarSteven Whitehouse <swhiteho@redhat.com>
parent 343cd8f0
...@@ -995,7 +995,6 @@ static int gfs2_unlink_ok(struct gfs2_inode *dip, const struct qstr *name, ...@@ -995,7 +995,6 @@ static int gfs2_unlink_ok(struct gfs2_inode *dip, const struct qstr *name,
* gfs2_unlink_inode - Removes an inode from its parent dir and unlinks it * gfs2_unlink_inode - Removes an inode from its parent dir and unlinks it
* @dip: The parent directory * @dip: The parent directory
* @name: The name of the entry in the parent directory * @name: The name of the entry in the parent directory
* @bh: The inode buffer for the inode to be removed
* @inode: The inode to be removed * @inode: The inode to be removed
* *
* Called with all the locks and in a transaction. This will only be * Called with all the locks and in a transaction. This will only be
...@@ -1005,8 +1004,7 @@ static int gfs2_unlink_ok(struct gfs2_inode *dip, const struct qstr *name, ...@@ -1005,8 +1004,7 @@ static int gfs2_unlink_ok(struct gfs2_inode *dip, const struct qstr *name,
*/ */
static int gfs2_unlink_inode(struct gfs2_inode *dip, static int gfs2_unlink_inode(struct gfs2_inode *dip,
const struct dentry *dentry, const struct dentry *dentry)
struct buffer_head *bh)
{ {
struct inode *inode = dentry->d_inode; struct inode *inode = dentry->d_inode;
struct gfs2_inode *ip = GFS2_I(inode); struct gfs2_inode *ip = GFS2_I(inode);
...@@ -1046,7 +1044,6 @@ static int gfs2_unlink(struct inode *dir, struct dentry *dentry) ...@@ -1046,7 +1044,6 @@ static int gfs2_unlink(struct inode *dir, struct dentry *dentry)
struct gfs2_sbd *sdp = GFS2_SB(dir); struct gfs2_sbd *sdp = GFS2_SB(dir);
struct inode *inode = dentry->d_inode; struct inode *inode = dentry->d_inode;
struct gfs2_inode *ip = GFS2_I(inode); struct gfs2_inode *ip = GFS2_I(inode);
struct buffer_head *bh;
struct gfs2_holder ghs[3]; struct gfs2_holder ghs[3];
struct gfs2_rgrpd *rgd; struct gfs2_rgrpd *rgd;
int error; int error;
...@@ -1094,15 +1091,10 @@ static int gfs2_unlink(struct inode *dir, struct dentry *dentry) ...@@ -1094,15 +1091,10 @@ static int gfs2_unlink(struct inode *dir, struct dentry *dentry)
goto out_gunlock; goto out_gunlock;
error = gfs2_trans_begin(sdp, 2*RES_DINODE + 3*RES_LEAF + RES_RG_BIT, 0); error = gfs2_trans_begin(sdp, 2*RES_DINODE + 3*RES_LEAF + RES_RG_BIT, 0);
if (error)
goto out_gunlock;
error = gfs2_meta_inode_buffer(ip, &bh);
if (error) if (error)
goto out_end_trans; goto out_end_trans;
error = gfs2_unlink_inode(dip, dentry, bh); error = gfs2_unlink_inode(dip, dentry);
brelse(bh);
out_end_trans: out_end_trans:
gfs2_trans_end(sdp); gfs2_trans_end(sdp);
...@@ -1402,14 +1394,8 @@ static int gfs2_rename(struct inode *odir, struct dentry *odentry, ...@@ -1402,14 +1394,8 @@ static int gfs2_rename(struct inode *odir, struct dentry *odentry,
/* Remove the target file, if it exists */ /* Remove the target file, if it exists */
if (nip) { if (nip)
struct buffer_head *bh; error = gfs2_unlink_inode(ndip, ndentry);
error = gfs2_meta_inode_buffer(nip, &bh);
if (error)
goto out_end_trans;
error = gfs2_unlink_inode(ndip, ndentry, bh);
brelse(bh);
}
if (dir_rename) { if (dir_rename) {
error = gfs2_dir_mvino(ip, &gfs2_qdotdot, ndip, DT_DIR); error = gfs2_dir_mvino(ip, &gfs2_qdotdot, ndip, DT_DIR);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment