FAQ Search Today's Posts Mark Forums Read
» Video Reviews

» Linux Archive

Linux-archive is a website aiming to archive linux email lists and to make them easily accessible for linux users/developers.


» Sponsor

» Partners

» Sponsor

Go Back   Linux Archive > Redhat > Cluster Development

 
 
LinkBack Thread Tools
 
Old 01-20-2010, 03:24 PM
Benjamin Marzinski
 
Default GFS2: Don't withdraw on partial rindex entries

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?
");

clear_rgrpdi(sdp);
 
Old 01-25-2010, 04:23 PM
Benjamin Marzinski
 
Default GFS2: Don't withdraw on partial rindex entries

ince 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 it simply ignores them.

Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
---
fs/gfs2/rgrp.c | 5 -----
1 file changed, 5 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,11 +591,6 @@ 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;
- }
-
clear_rgrpdi(sdp);

file_ra_state_init(&ra_state, inode->i_mapping);
 
Old 02-02-2010, 08:47 AM
Steven Whitehouse
 
Default GFS2: Don't withdraw on partial rindex entries

From: Benjamin Marzinski <bmarzins@redhat.com>

ince 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 it simply ignores them.

Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
---
fs/gfs2/rgrp.c | 5 -----
1 files changed, 0 insertions(+), 5 deletions(-)

diff --git a/fs/gfs2/rgrp.c b/fs/gfs2/rgrp.c
index 0608f49..6702b82 100644
--- a/fs/gfs2/rgrp.c
+++ b/fs/gfs2/rgrp.c
@@ -591,11 +591,6 @@ static int gfs2_ri_update(struct gfs2_inode *ip)
u64 rgrp_count = ip->i_disksize;
int error;

- if (do_div(rgrp_count, sizeof(struct gfs2_rindex))) {
- gfs2_consist_inode(ip);
- return -EIO;
- }
-
clear_rgrpdi(sdp);

file_ra_state_init(&ra_state, inode->i_mapping);
--
1.6.2.5
 

Thread Tools




All times are GMT. The time now is 10:01 PM.

VBulletin, Copyright ©2000 - 2014, Jelsoft Enterprises Ltd.
Content Relevant URLs by vBSEO ©2007, Crawlability, Inc.
Copyright 2007 - 2008, www.linux-archive.org