[<prev] [next>] [thread-next>] [day] [month] [year] [list]
Message-Id: <1605672156-29051-1-git-send-email-kaixuxia@tencent.com>
Date: Wed, 18 Nov 2020 12:02:36 +0800
From: xiakaixu1987@...il.com
To: clm@...com, josef@...icpanda.com, dsterba@...e.com
Cc: linux-btrfs@...r.kernel.org, linux-kernel@...r.kernel.org,
Kaixu Xia <kaixuxia@...cent.com>
Subject: [PATCH v2] btrfs: return EAGAIN when receiving a pending signal in the defrag loops
From: Kaixu Xia <kaixuxia@...cent.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@...cent.com>
Signed-off-by: Kaixu Xia <kaixuxia@...cent.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
Powered by blists - more mailing lists