linux/fs/gfs2
Benjamin Marzinski 1946f70ab5 GFS2: keep statfs info in sync on grows
GFS2 wasn't syncing its statfs info on grows.  This causes a problem
when you grow the filesystem on multiple nodes.  GFS2 would calculate
the new space based on the resource groups (which are always current),
and then assume that the filesystem had grown the from the existing
statfs size.  If you grew the filesystem on two different nodes in a
short time, the second node wouldn't see the statfs size change from the
first node, and would assume that it was grown by a larger amount than
it was.  When all these changes were synced out, the total fileystem
size would be incorrect (the first grow would be counted twice).

This patch syncs makes GFS2 read in the statfs changes from disk before
a grow, and write them out after the grow, while the master statfs inode
is locked.

Signed-off-by: Benjamin Marzinski <bmarzins@redhat.com>
Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
2009-07-30 10:52:33 +01:00
..
acl.c New helper - current_umask() 2009-03-31 23:00:26 -04:00
acl.h [GFS2] Remove gfs2_check_acl() 2006-11-30 10:37:32 -05:00
aops.c GFS2: keep statfs info in sync on grows 2009-07-30 10:52:33 +01:00
bmap.c GFS2: Add tracepoints 2009-06-12 08:49:20 +01:00
bmap.h GFS2: Streamline alloc calculations for writes 2009-01-05 07:39:17 +00:00
dentry.c GFS2: Clean up some file names 2009-05-22 10:01:55 +01:00
dir.c GFS2: Improve resource group error handling 2009-05-20 10:48:47 +01:00
dir.h GFS2: Fix bug in gfs2_lock_fs_check_clean() 2009-01-05 07:39:11 +00:00
eaops.c GFS2: Merge lock_dlm module into GFS2 2009-03-24 11:21:14 +00:00
eaops.h [GFS2] mark struct *_operations const 2007-10-10 08:55:03 +01:00
eattr.c GFS2: Improve resource group error handling 2009-05-20 10:48:47 +01:00
eattr.h [GFS2] gfs2 misc endianness annotations 2006-11-30 10:33:46 -05:00
export.c GFS2: Clean up some file names 2009-05-22 10:01:55 +01:00
file.c GFS2: Remove unused variable 2009-06-03 10:07:44 +01:00
gfs2.h [GFS2] Remove remote lock dropping code 2008-06-27 09:39:44 +01:00
glock.c GFS2: Shrink the shrinker 2009-07-30 10:52:14 +01:00
glock.h GFS2: Merge lock_dlm module into GFS2 2009-03-24 11:21:14 +00:00
glops.c GFS2: Improve resource group error handling 2009-05-20 10:48:47 +01:00
glops.h GFS2: Add a "demote a glock" interface to sysfs 2009-03-24 11:21:22 +00:00
incore.h GFS2: Be more aggressive in reclaiming unlinked inodes 2009-05-21 15:18:19 +01:00
inode.c GFS2: Move gfs2_unlink_ok into ops_inode.c 2009-05-22 10:54:50 +01:00
inode.h GFS2: Move gfs2_unlink_ok into ops_inode.c 2009-05-22 10:54:50 +01:00
Kconfig block: rename CONFIG_LBD to CONFIG_LBDAF 2009-06-19 08:08:50 +02:00
lock_dlm.c GFS2: Fix locking bug in failed shared to exclusive conversion 2009-03-24 11:21:26 +00:00
log.c GFS2: Add tracepoints 2009-06-12 08:49:20 +01:00
log.h [GFS2] trivial sparse lock annotations 2008-06-27 09:39:31 +01:00
lops.c GFS2: Add tracepoints 2009-06-12 08:49:20 +01:00
lops.h [GFS2] Only do lo_incore_commit once 2008-03-31 10:39:54 +01:00
main.c GFS2: Umount recovery race fix 2009-05-19 10:01:18 +01:00
Makefile GFS2: Add tracepoints 2009-06-12 08:49:20 +01:00
meta_io.c GFS2: Clean up some file names 2009-05-22 10:01:55 +01:00
meta_io.h GFS2: Clean up of glops.c 2009-03-24 11:21:27 +00:00
ops_fstype.c GFS2: Add tracepoints 2009-06-12 08:49:20 +01:00
ops_inode.c GFS2: Move gfs2_unlink_ok into ops_inode.c 2009-05-22 10:54:50 +01:00
quota.c GFS2: Clean up some file names 2009-05-22 10:01:55 +01:00
quota.h GFS2: change gfs2_quota_scan into a shrinker 2009-03-24 11:21:12 +00:00
recovery.c GFS2: Umount recovery race fix 2009-05-19 10:01:18 +01:00
recovery.h GFS2: Umount recovery race fix 2009-05-19 10:01:18 +01:00
rgrp.c GFS2: Add tracepoints 2009-06-12 08:49:20 +01:00
rgrp.h GFS2: Improve resource group error handling 2009-05-20 10:48:47 +01:00
super.c GFS2: keep statfs info in sync on grows 2009-07-30 10:52:33 +01:00
super.h GFS2: keep statfs info in sync on grows 2009-07-30 10:52:33 +01:00
sys.c GFS2: Remove args subdir from gfs2 sysfs files 2009-05-26 15:50:25 +01:00
sys.h GFS2: Remove ancient, unused code 2009-01-05 07:39:13 +00:00
trace_gfs2.h tracing/events: Move TRACE_SYSTEM outside of include guard 2009-07-13 10:59:55 +02:00
trans.c GFS2: Move journal live test at transaction start 2009-05-13 10:56:52 +01:00
trans.h [GFS2] Update gfs2_trans_add_unrevoke to accept extents 2008-03-31 10:40:42 +01:00
util.c GFS2: Merge lock_dlm module into GFS2 2009-03-24 11:21:14 +00:00
util.h GFS2: Clean up & move gfs2_quotad 2009-01-05 07:39:05 +00:00