GFS2: Reduce file fragmentation
[deliverable/linux.git] / fs / gfs2 / super.c
index 788068758f3adcaeb1ccceca9c8e12736eebb30e..b1502c4bc60d822eabce44e9ff455777f02ff97a 100644 (file)
@@ -1420,6 +1420,10 @@ static int gfs2_dinode_dealloc(struct gfs2_inode *ip)
                return -EIO;
        }
 
+       error = gfs2_rindex_update(sdp);
+       if (error)
+               return error;
+
        error = gfs2_quota_hold(ip, NO_QUOTA_CHANGE, NO_QUOTA_CHANGE);
        if (error)
                return error;
@@ -1550,6 +1554,9 @@ out_truncate:
 
 out_unlock:
        /* Error path for case 1 */
+       if (gfs2_rs_active(ip->i_res))
+               gfs2_rs_deltree(ip->i_res);
+
        if (test_bit(HIF_HOLDER, &ip->i_iopen_gh.gh_iflags))
                gfs2_glock_dq(&ip->i_iopen_gh);
        gfs2_holder_uninit(&ip->i_iopen_gh);
This page took 0.028991 seconds and 5 git commands to generate.