From: Nikolay Borisov <nborisov@suse.com>
To: linux-btrfs@vger.kernel.org
Cc: fdmanana@suse.com, Nikolay Borisov <nborisov@suse.com>
Subject: [PATCH 1/2] btrfs: Abort transaction if btrfs_update_root fails in btrfs_ioctl_subvol_setflags
Date: Tue, 26 Sep 2017 17:27:41 +0300 [thread overview]
Message-ID: <1506436062-23825-1-git-send-email-nborisov@suse.com> (raw)
btrfs_update_root can fail for any number of reasons, however the only error
handling we do is to revert the modified flags, yet we do not abort the
transaction but proceed to commit it. Fix this by explicitly checking if the
update root routine has failed and abort the transaction.
Fixes: 0caa102da827 ("Btrfs: Add BTRFS_IOC_SUBVOL_GETFLAGS/SETFLAGS ioctls")
Signed-off-by: Nikolay Borisov <nborisov@suse.com>
---
fs/btrfs/ioctl.c | 3 +++
1 file changed, 3 insertions(+)
diff --git a/fs/btrfs/ioctl.c b/fs/btrfs/ioctl.c
index d6715c2bcdc4..09fcd51f0e8c 100644
--- a/fs/btrfs/ioctl.c
+++ b/fs/btrfs/ioctl.c
@@ -1842,8 +1842,11 @@ static noinline int btrfs_ioctl_subvol_setflags(struct file *file,
ret = btrfs_update_root(trans, fs_info->tree_root,
&root->root_key, &root->root_item);
+ if (ret < 0)
+ btrfs_abort_transaction(trans, ret);
btrfs_commit_transaction(trans);
+
out_reset:
if (ret)
btrfs_set_root_flags(&root->root_item, root_flags);
--
2.7.4
next reply other threads:[~2017-09-26 14:27 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-09-26 14:27 Nikolay Borisov [this message]
2017-09-26 14:27 ` [RFC PATCH 2/2] btrfs: Remove received_uuid during received snapshot ro->rw switch Nikolay Borisov
2017-09-27 8:53 ` [PATCH v2] " Nikolay Borisov
2017-09-26 17:39 ` [PATCH 1/2] btrfs: Abort transaction if btrfs_update_root fails in btrfs_ioctl_subvol_setflags David Sterba
2017-09-27 8:48 ` Nikolay Borisov
2017-09-27 14:00 ` David Sterba
2017-09-27 14:28 ` Nikolay Borisov
2017-09-28 7:53 ` [PATCH 1/2] btrfs: Explicitly handle btrfs_update_root failure Nikolay Borisov
2017-09-28 7:53 ` [PATCH v3 2/2] btrfs: Remove received_uuid during received snapshot ro->rw switch Nikolay Borisov
2017-09-29 17:56 ` David Sterba
2017-09-29 19:15 ` Nikolay Borisov
2017-10-04 15:00 ` David Sterba
2017-10-05 8:22 ` [PATCH v4] " Nikolay Borisov
2017-10-05 9:03 ` Anand Jain
2017-10-06 17:24 ` David Sterba
2017-10-06 17:49 ` Hans van Kranenburg
2017-10-06 20:07 ` Andrei Borzenkov
2017-10-06 21:27 ` Hans van Kranenburg
2017-10-07 7:56 ` Andrei Borzenkov
2017-11-12 17:11 ` Hans van Kranenburg
2017-09-29 17:42 ` [PATCH 1/2] btrfs: Explicitly handle btrfs_update_root failure David Sterba
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=1506436062-23825-1-git-send-email-nborisov@suse.com \
--to=nborisov@suse.com \
--cc=fdmanana@suse.com \
--cc=linux-btrfs@vger.kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.