diff mbox

[4/4] Btrfs: handle EAGAIN case properly in btrfs_drop_snapshot()

Message ID 1389000339-15388-3-git-send-email-wangsl.fnst@cn.fujitsu.com (mailing list archive)
State Superseded, archived
Headers show

Commit Message

Wang Shilong Jan. 6, 2014, 9:25 a.m. UTC
We may return early in btrfs_drop_snapshot(), we shouldn't
call btrfs_std_err() for this case, fix it.

Signed-off-by: Wang Shilong <wangsl.fnst@cn.fujitsu.com>
---
 fs/btrfs/extent-tree.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

Comments

David Sterba Jan. 6, 2014, 4:49 p.m. UTC | #1
On Mon, Jan 06, 2014 at 05:25:39PM +0800, Wang Shilong wrote:
> We may return early in btrfs_drop_snapshot(), we shouldn't
> call btrfs_std_err() for this case, fix it.

Somebody reported this 2 days ago on IRC. I think it should go to stable
as well, so it would be good to squeeze it to the next rc kernel.

The visible effect of the bug is that the filesystem incorrectly flips
to read-only and the currently running transaction is not committed.

david
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
diff mbox

Patch

diff --git a/fs/btrfs/extent-tree.c b/fs/btrfs/extent-tree.c
index 4fa1437..81650cf 100644
--- a/fs/btrfs/extent-tree.c
+++ b/fs/btrfs/extent-tree.c
@@ -8272,7 +8272,7 @@  out:
 	 */
 	if (!for_reloc && root_dropped == false)
 		btrfs_add_dead_root(root);
-	if (err)
+	if (err && err != -EAGAIN)
 		btrfs_std_error(root->fs_info, err);
 	return err;
 }