Messages in this thread Patch in this message | | | From | xiakaixu1987@gmail ... | Subject | [PATCH v2] btrfs: return EAGAIN when receiving a pending signal in the defrag loops | Date | Wed, 18 Nov 2020 12:02:36 +0800 |
| |
From: Kaixu Xia <kaixuxia@tencent.com>
The variable ret is overwritten by the following variable defrag_count. Actually the code should return EAGAIN when receiving a pending signal in the defrag loops.
Reported-by: Tosk Robot <tencent_os_robot@tencent.com> Signed-off-by: Kaixu Xia <kaixuxia@tencent.com> --- v2 -return EAGAIN instead of remove the EAGAIN error.
fs/btrfs/ioctl.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/fs/btrfs/ioctl.c b/fs/btrfs/ioctl.c index 69a384145dc6..6f13db6d30bd 100644 --- a/fs/btrfs/ioctl.c +++ b/fs/btrfs/ioctl.c @@ -1519,7 +1519,7 @@ int btrfs_defrag_file(struct inode *inode, struct file *file, if (btrfs_defrag_cancelled(fs_info)) { btrfs_debug(fs_info, "defrag_file cancelled"); ret = -EAGAIN; - break; + goto out_ra; } if (!should_defrag_range(inode, (u64)i << PAGE_SHIFT, -- 2.20.0
| |