diff options
author | Younger Liu <younger.liu@huawei.com> | 2013-09-11 14:19:47 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2013-09-11 15:56:31 -0700 |
commit | 7e9b79370733945b25c24e09d663b07c3936d10c (patch) | |
tree | c9496c12fdaf0e7313c873397f17a9bc9bea4dbb /include/linux/bsg.h | |
parent | 98ac9125c5afed8c5d2e4c5824988f8ad51814e1 (diff) | |
download | linux-7e9b79370733945b25c24e09d663b07c3936d10c.tar.gz linux-7e9b79370733945b25c24e09d663b07c3936d10c.tar.bz2 linux-7e9b79370733945b25c24e09d663b07c3936d10c.zip |
ocfs2: ac_bits_wanted should be local_alloc_bits when returns -ENOSPC
There is an issue in reserving and claiming space for localalloc, When
localalloc space is not enough, it would claim space from global_bitmap.
And if there is not enough free space in global_bitmap, the size of
claiming space would set to half of orignal size and retry.
The issue is as follows: osb->local_alloc_bits is set to half of orignal
size in ocfs2_recalc_la_window(), but ac->ac_bits_wanted is set to
osb->local_alloc_default_bits which is not changed. localalloc always
reserves and claims local_alloc_default_bits space and returns ENOSPC.
So, ac->ac_bits_wanted should be osb->local_alloc_bits which would be
changed.
Signed-off-by: Younger Liu <younger.liu@huawei.com>
Cc: Joel Becker <jlbec@evilplan.org>
Cc: Mark Fasheh <mfasheh@suse.com>
Cc: Jeff Liu <jeff.liu@oracle.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'include/linux/bsg.h')
0 files changed, 0 insertions, 0 deletions