f2fs: release locks before return in f2fs_ioc_gc_range()
Currently, we will leave the kernel with locks still held when the gc_range is invalid. This patch fixes the bug. Signed-off-by: Qiuyang Sun <sunqiuyang@huawei.com> Reviewed-by: Chao Yu <yuchao0@huawei.com> Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>
This commit is contained in:
parent
bb1105e479
commit
da5ce874f8
@ -2059,8 +2059,10 @@ static int f2fs_ioc_gc_range(struct file *filp, unsigned long arg)
|
|||||||
return ret;
|
return ret;
|
||||||
|
|
||||||
end = range.start + range.len;
|
end = range.start + range.len;
|
||||||
if (range.start < MAIN_BLKADDR(sbi) || end >= MAX_BLKADDR(sbi))
|
if (range.start < MAIN_BLKADDR(sbi) || end >= MAX_BLKADDR(sbi)) {
|
||||||
return -EINVAL;
|
ret = -EINVAL;
|
||||||
|
goto out;
|
||||||
|
}
|
||||||
do_more:
|
do_more:
|
||||||
if (!range.sync) {
|
if (!range.sync) {
|
||||||
if (!mutex_trylock(&sbi->gc_mutex)) {
|
if (!mutex_trylock(&sbi->gc_mutex)) {
|
||||||
|
Loading…
Reference in New Issue
Block a user