[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]

[Cluster-devel] [PATCH] GFS2: Improve statfs and quota usability



Since gfs2 writes the rindex file a block at a time, and releases the exclusive
lock after each block, it is possible that another process will grab the lock
in the middle of the write.  Since rindex entries are not an even divisor of
blocks, that other process may see partial entries.  On grows, this is fine.
The process can simply ignore the the partial entires. Previously, the code
withdrew when it saw partial entries. Now is simply prints an info message
letting the user know that it found a partial entry.

Signed-off-by: Benjamin Marzinski <bmarzins redhat com>
---
 fs/gfs2/rgrp.c |    6 ++----
 1 file changed, 2 insertions(+), 4 deletions(-)

Index: gfs2-2.6-nmw/fs/gfs2/rgrp.c
===================================================================
--- gfs2-2.6-nmw.orig/fs/gfs2/rgrp.c
+++ gfs2-2.6-nmw/fs/gfs2/rgrp.c
@@ -591,10 +591,8 @@ static int gfs2_ri_update(struct gfs2_in
 	u64 rgrp_count = ip->i_disksize;
 	int error;
 
-	if (do_div(rgrp_count, sizeof(struct gfs2_rindex))) {
-		gfs2_consist_inode(ip);
-		return -EIO;
-	}
+	if (do_div(rgrp_count, sizeof(struct gfs2_rindex)))
+		fs_info(sdp, "incomplete resource index. Is the filesystem being grown?\n");
 
 	clear_rgrpdi(sdp);
 


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]