From 15e3440a3f307c00bccf20ca5dfa8596a6a8b2c2 Mon Sep 17 00:00:00 2001 From: Nikolay Borisov Date: Tue, 7 May 2019 10:23:46 +0300 Subject: [PATCH] btrfs: Return EAGAIN if we can't start no snpashot write in check_can_nocow The first thing code does in check_can_nocow is trying to block concurrent snapshots. If this fails (due to snpashot already being in progress) the function returns ENOSPC which makes no sense. Instead return EAGAIN. Despite this return value not being propagated to callers it's good practice to return the closest in terms of semantics error code. No functional changes. Signed-off-by: Nikolay Borisov Reviewed-by: David Sterba Signed-off-by: David Sterba --- fs/btrfs/file.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/fs/btrfs/file.c b/fs/btrfs/file.c index 007652ff5cb6a..5370152ea7e3a 100644 --- a/fs/btrfs/file.c +++ b/fs/btrfs/file.c @@ -1556,7 +1556,7 @@ static noinline int check_can_nocow(struct btrfs_inode *inode, loff_t pos, ret = btrfs_start_write_no_snapshotting(root); if (!ret) - return -ENOSPC; + return -EAGAIN; lockstart = round_down(pos, fs_info->sectorsize); lockend = round_up(pos + *write_bytes, -- 2.39.5