linux-stable/fs/gfs2
Steven Whitehouse 2568ab6580 GFS2: Fix bmap allocation corner-case bug
commit 07ccb7bf2c upstream.

This patch solves a corner case during allocation which occurs if both
metadata (indirect) and data blocks are required but there is an
obstacle in the filesystem (e.g. a resource group header or another
allocated block) such that when the allocation is requested only
enough blocks for the metadata are returned.

By changing the exit condition of this loop, we ensure that a
minimum of one data block will always be returned.

Signed-off-by: Steven Whitehouse <swhiteho@redhat.com>
Cc: maximilian attems <max@stro.at>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
2011-04-30 16:53:05 +02:00
..
locking/dlm [GFS2] Fix module building 2008-06-27 09:40:57 +01:00
acl.c [GFS2] fix GFP_KERNEL misuses 2008-04-10 09:55:26 +01:00
acl.h [GFS2] Remove gfs2_check_acl() 2006-11-30 10:37:32 -05:00
bmap.c GFS2: Fix bmap allocation corner-case bug 2011-04-30 16:53:05 +02:00
bmap.h [GFS2] Remove function gfs2_get_block 2008-01-25 08:08:25 +00:00
daemon.c [GFS2] Move gfs2_logd into log.c 2008-01-25 08:07:56 +00:00
daemon.h [GFS2] Move gfs2_logd into log.c 2008-01-25 08:07:56 +00:00
dir.c GFS2: rename causes kernel Oops 2010-08-10 09:52:55 -07:00
dir.h [GFS2] Clean up inode number handling 2007-07-09 08:22:24 +01:00
eaops.c [GFS2] Remove unrequired code 2008-01-25 08:08:13 +00:00
eaops.h [GFS2] mark struct *_operations const 2007-10-10 08:55:03 +01:00
eattr.c [GFS2] fix GFP_KERNEL misuses 2008-04-10 09:55:26 +01:00
eattr.h [GFS2] gfs2 misc endianness annotations 2006-11-30 10:33:46 -05:00
gfs2.h [GFS2] Remove remote lock dropping code 2008-06-27 09:39:44 +01:00
glock.c [GFS2] Allow local DF locks when holding a cached EX glock 2008-07-07 10:07:28 +01:00
glock.h [GFS2] Remove remote lock dropping code 2008-06-27 09:39:44 +01:00
glops.c [GFS2] Clean up the glock core 2008-06-27 09:39:22 +01:00
glops.h [GFS2] Make headers compile on their own 2006-09-05 10:39:21 -04:00
incore.h [GFS2] Remove support for unused and pointless flag 2008-07-10 16:09:29 +01:00
inode.c [PATCH] don't pass nameidata to gfs2_lookupi() 2008-07-26 20:53:36 -04:00
inode.h [PATCH] don't pass nameidata to gfs2_lookupi() 2008-07-26 20:53:36 -04:00
Kconfig [GFS2] No lock_nolock 2008-06-27 09:39:28 +01:00
locking.c [GFS2] Fix ordering of args for list_add 2008-06-27 09:39:34 +01:00
log.c [GFS2] trivial sparse lock annotations 2008-06-27 09:39:31 +01:00
log.h [GFS2] trivial sparse lock annotations 2008-06-27 09:39:31 +01:00
lops.c [GFS2] Plug an unlikely leak 2008-03-31 10:40:05 +01:00
lops.h [GFS2] Only do lo_incore_commit once 2008-03-31 10:39:54 +01:00
main.c SL*B: drop kmem cache argument from constructor 2008-07-26 12:00:07 -07:00
Makefile [GFS2] No lock_nolock 2008-06-27 09:39:28 +01:00
meta_io.c [GFS2] Clean up the glock core 2008-06-27 09:39:22 +01:00
meta_io.h [GFS2] Clean up the glock core 2008-06-27 09:39:22 +01:00
mount.c [GFS2] Add NULL entry to token table 2007-10-10 08:55:34 +01:00
mount.h [GFS2] Make headers compile on their own 2006-09-05 10:39:21 -04:00
ops_address.c fs: symlink write_begin allocation context fix 2009-01-18 10:35:43 -08:00
ops_address.h [GFS2] Remove function gfs2_get_block 2008-01-25 08:08:25 +00:00
ops_dentry.c [GFS2] Fix a page lock / glock deadlock 2008-03-31 10:41:12 +01:00
ops_dentry.h [GFS2] Make headers compile on their own 2006-09-05 10:39:21 -04:00
ops_export.c [PATCH] don't pass nameidata to gfs2_lookupi() 2008-07-26 20:53:36 -04:00
ops_file.c GFS2: Fix page_mkwrite() return code 2009-05-19 22:20:10 -07:00
ops_fstype.c [GFS2] Replace rgrp "recent list" with mru list 2008-07-10 15:54:12 +01:00
ops_fstype.h exportfs: make struct export_operations const 2007-10-22 08:13:21 -07:00
ops_inode.c [PATCH] don't pass nameidata to gfs2_lookupi() 2008-07-26 20:53:36 -04:00
ops_inode.h [GFS2] remove gfs2_dev_iops 2008-03-31 10:41:20 +01:00
ops_super.c [GFS2] Remove remote lock dropping code 2008-06-27 09:39:44 +01:00
ops_super.h [PATCH] Mark struct super_operations const 2007-02-12 09:48:47 -08:00
quota.c [GFS2] Fix GFS2's use of do_div() in its quota calculations 2008-07-11 14:35:01 +01:00
quota.h [GFS2] Streamline quota lock/check for no-quota case 2008-03-31 10:41:36 +01:00
recovery.c [GFS2] No lock_nolock 2008-06-27 09:39:28 +01:00
recovery.h [GFS2] split and annotate gfs2_log_head 2006-11-30 10:33:14 -05:00
rgrp.c [GFS2] Replace rgrp "recent list" with mru list 2008-07-10 15:54:12 +01:00
rgrp.h [GFS2] Add extent allocation to block allocator 2008-03-31 10:40:47 +01:00
super.c [PATCH] don't pass nameidata to gfs2_lookupi() 2008-07-26 20:53:36 -04:00
super.h [GFS2] Remove lm.[ch] and distribute content 2008-03-31 10:40:26 +01:00
sys.c [GFS2] Remove support for unused and pointless flag 2008-07-10 16:09:29 +01:00
sys.h [GFS2] Make headers compile on their own 2006-09-05 10:39:21 -04:00
trans.c [GFS2] Update gfs2_trans_add_unrevoke to accept extents 2008-03-31 10:40:42 +01:00
trans.h [GFS2] Update gfs2_trans_add_unrevoke to accept extents 2008-03-31 10:40:42 +01:00
util.c [GFS2] Remove lm.[ch] and distribute content 2008-03-31 10:40:26 +01:00
util.h fs: replace remaining __FUNCTION__ occurrences 2008-04-30 08:29:54 -07:00