Message ID | 20191020232326.84881-1-cgxu519@mykernel.net |
---|---|
State | Not Applicable |
Headers | show |
Series | ext2: adjust block num when retry allocation | expand |
On Mon 21-10-19 07:23:26, Chengguang Xu wrote: > Set block num to original *count in a case > of retrying allocation in case num < *count > > Signed-off-by: Chengguang Xu <cgxu519@mykernel.net> > --- > Hi Jan, > > This patch is only compile-tested, I'm not sure if this > kind of unexpected condition which causes reallocation > will actually happen but baesd on the code the fix seems > correct and better. Yeah, you are right that we should reset 'num' back to *count. Although the practial effect of this is minimal - we take this code path only when the filesystem is corrupted. But still... Patch applied. Thanks! Honza > > fs/ext2/balloc.c | 1 + > 1 file changed, 1 insertion(+) > > diff --git a/fs/ext2/balloc.c b/fs/ext2/balloc.c > index e0cc55164505..924c1c765306 100644 > --- a/fs/ext2/balloc.c > +++ b/fs/ext2/balloc.c > @@ -1404,6 +1404,7 @@ ext2_fsblk_t ext2_new_blocks(struct inode *inode, ext2_fsblk_t goal, > * use. So we may want to selectively mark some of the blocks > * as free > */ > + num = *count; > goto retry_alloc; > } > > -- > 2.21.0 > > >
---- 在 星期一, 2019-10-21 17:18:00 Jan Kara <jack@suse.cz> 撰写 ---- > On Mon 21-10-19 07:23:26, Chengguang Xu wrote: > > Set block num to original *count in a case > > of retrying allocation in case num < *count > > > > Signed-off-by: Chengguang Xu <cgxu519@mykernel.net> > > --- > > Hi Jan, > > > > This patch is only compile-tested, I'm not sure if this > > kind of unexpected condition which causes reallocation > > will actually happen but baesd on the code the fix seems > > correct and better. > > Yeah, you are right that we should reset 'num' back to *count. Although the > practial effect of this is minimal - we take this code path only when the > filesystem is corrupted. But still... Patch applied. Thanks! Thanks for your review. I found another relevant bug in ext2_try_to_allocate() today, I'll fix it up and also plan to do some code cleanups for the allocation logic. Do you prefer two separate patches for bugfix and cleanup or just put all in a patch series? Thanks, Chengguang
diff --git a/fs/ext2/balloc.c b/fs/ext2/balloc.c index e0cc55164505..924c1c765306 100644 --- a/fs/ext2/balloc.c +++ b/fs/ext2/balloc.c @@ -1404,6 +1404,7 @@ ext2_fsblk_t ext2_new_blocks(struct inode *inode, ext2_fsblk_t goal, * use. So we may want to selectively mark some of the blocks * as free */ + num = *count; goto retry_alloc; }
Set block num to original *count in a case of retrying allocation in case num < *count Signed-off-by: Chengguang Xu <cgxu519@mykernel.net> --- Hi Jan, This patch is only compile-tested, I'm not sure if this kind of unexpected condition which causes reallocation will actually happen but baesd on the code the fix seems correct and better. fs/ext2/balloc.c | 1 + 1 file changed, 1 insertion(+)