From: Mark Fasheh <mfasheh@suse.de>
To: Josef Bacik <jbacik@fusionio.com>
Cc: "linux-btrfs@vger.kernel.org" <linux-btrfs@vger.kernel.org>,
Chris Mason <clmason@fusionio.com>,
Josef Bacik <josef@redhat.com>,
Gabriel de Perthuis <g2p.code@gmail.com>,
David Sterba <dsterba@suse.cz>
Subject: Re: [PATCH 0/4] btrfs: offline dedupe v2
Date: Mon, 17 Jun 2013 13:04:45 -0700 [thread overview]
Message-ID: <20130617200445.GI29353@wotan.suse.de> (raw)
In-Reply-To: <20130612181037.GD658@localhost.localdomain>
On Wed, Jun 12, 2013 at 02:10:37PM -0400, Josef Bacik wrote:
> On Tue, Jun 11, 2013 at 02:31:34PM -0600, Mark Fasheh wrote:
> > Hi,
> >
> > The following series of patches implements in btrfs an ioctl to do
> > offline deduplication of file extents.
>
> Ok I'm relatively happy with this set, I just want to have an xfstest on deck to
> test it with. Once I have an xfstest to run to verify its sanity I'll pull it
> in. Thanks,
Awesome thanks Josef. Is it ok to include this patch as well, it implements
the semantics that Gabriel and I talked about. The patch is also on top of
the same git tree I have referenced in the original e-mails.
Btw, let me know if you want/need help writing an xfs test for this.
--Mark
--
Mark Fasheh
From: Mark Fasheh <mfasheh@suse.de>
btrfs-extent-same: allow root to always dedupe
This will allow end users to run dedupe against their readonly snapshots - a
common method for making backups of btrfs subvolumes. Since it is impossible
for root to get a rw file descriptor on such a snapshot, this enables dedupe
from a privileged account to proceed with read access. Non root accounts
still have the same access restrictions - they cannot dedupe without write
access to the file.
Signed-off-by: Mark Fasheh <mfasheh@suse.de>
---
fs/btrfs/ioctl.c | 6 ++----
1 file changed, 2 insertions(+), 4 deletions(-)
diff --git a/fs/btrfs/ioctl.c b/fs/btrfs/ioctl.c
index 9351b69..68931b9 100644
--- a/fs/btrfs/ioctl.c
+++ b/fs/btrfs/ioctl.c
@@ -2629,13 +2629,11 @@ static long btrfs_ioctl_file_extent_same(struct file *file,
u64 bs = BTRFS_I(src)->root->fs_info->sb->s_blocksize;
char *src_buffer = NULL;
char *dst_buffer = NULL;
+ bool is_admin = capable(CAP_SYS_ADMIN);
if (!(file->f_mode & FMODE_READ))
return -EINVAL;
- if (btrfs_root_readonly(BTRFS_I(src)->root))
- return -EROFS;
-
ret = mnt_want_write_file(file);
if (ret)
return ret;
@@ -2722,7 +2720,7 @@ static long btrfs_ioctl_file_extent_same(struct file *file,
continue;
}
- if (!(dst_file->f_mode & FMODE_WRITE)) {
+ if (!(is_admin || (dst_file->f_mode & FMODE_WRITE))) {
info->status = -EINVAL;
goto next;
}
--
1.8.1.4
prev parent reply other threads:[~2013-06-17 20:04 UTC|newest]
Thread overview: 13+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-06-11 20:31 [PATCH 0/4] btrfs: offline dedupe v2 Mark Fasheh
2013-06-11 20:31 ` [PATCH 1/4] btrfs: abtract out range locking in clone ioctl() Mark Fasheh
2013-06-11 20:31 ` [PATCH 2/4] btrfs_ioctl_clone: Move clone code into it's own function Mark Fasheh
2013-06-11 20:31 ` [PATCH 3/4] btrfs: Introduce extent_read_full_page_nolock() Mark Fasheh
2013-06-11 20:31 ` [PATCH 4/4] btrfs: offline dedupe Mark Fasheh
2013-07-15 20:55 ` Zach Brown
2013-07-17 0:14 ` Gabriel de Perthuis
2013-06-11 20:56 ` [PATCH 0/4] btrfs: offline dedupe v2 Gabriel de Perthuis
2013-06-11 21:04 ` Mark Fasheh
2013-06-11 21:31 ` Gabriel de Perthuis
2013-06-11 21:45 ` Mark Fasheh
2013-06-12 18:10 ` Josef Bacik
2013-06-17 20:04 ` Mark Fasheh [this message]
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=20130617200445.GI29353@wotan.suse.de \
--to=mfasheh@suse.de \
--cc=clmason@fusionio.com \
--cc=dsterba@suse.cz \
--cc=g2p.code@gmail.com \
--cc=jbacik@fusionio.com \
--cc=josef@redhat.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.