On Thu, Nov 29, 2012 at 7:06 AM, Chen Yang wrote:
> From 4222aa3a32cf4db161fcbbb87ad29b714f1bfaf2 Mon Sep 17 00:00:00 2001
> From: Chen Yang
> Date: Thu, 29 Nov 2012 13:22:09 +0800
> Subject: [PATCH] Btrfs: send - pre-allocated file support for btrfs-send
> mechanism
>
> when send or receive a
On Thu, Nov 29, 2012 at 4:11 AM, Chen Yang wrote:
> when send/receive a sparse file, the holes of the original file
> will be filled with zero. The holes will be sent as ZERO streams,
> and it's unnecessary.
>
> So, I improved this by skipping the hole of file while sending.
>
> Signed-off-by: Che
On Sat, Nov 10, 2012 at 9:31 AM, Alun wrote:
> Hi,
>
> (I'm not a list member and may not see any responses to this)
>
> I've been using btrfs on my Raspberry Pi. Yesterday I tried to use the
> "btrfs scrub" function and, while the scrub started OK, I couldn't run
> "btrfs scrub status" to see wha
On Thu, Nov 8, 2012 at 10:27 PM, Alexander Block
wrote:
> When __merge_refs merges two refs, it is also needed to merge the
> inode_list of both refs. Otherwise we have missed backrefs and memory
> leaks. This happens for example if two inodes share an extent and
> both lie in the s
When __merge_refs merges two refs, it is also needed to merge the
inode_list of both refs. Otherwise we have missed backrefs and memory
leaks. This happens for example if two inodes share an extent and
both lie in the same leaf and thus also have the same parent.
Signed-off-by: Alexander Block
long [unsigned] [usertype]
> vol_gen
> fs/btrfs/send.c:4132:51: got restricted __le64 [usertype] ctransid
>
> vim +1683 fs/btrfs/send.c
>
> 31db9f7c Alexander Block 2012-07-25 1677 read_extent_buffer(leaf,
> name, (unsigned long)(ref + 1), namelen);
> 31db9f7c Alexa
On Fri, Aug 24, 2012 at 4:15 PM, Jeff Liu wrote:
> Hi Alex,
>
> Thanks for taking a look.
>
> On 08/24/2012 09:09 PM, Alex Lyakas wrote:
>
>> Hi Jeff,
>> how do you see this snapshot-diff functionality vs the send/receive
>> functionality that was recently added? I think that the binary stream
>>
On Fri, Aug 3, 2012 at 11:13 PM, Josef Bacik wrote:
> On Thu, Aug 02, 2012 at 05:16:20PM -0600, Alexander Block wrote:
>> We got a recursive lock in mksubvol because the caller already held
>> a lock. I think we got into this due to a merge error. Commit a874a63
>> removed th
I got a deadlock happening while creating a snapshot and ordered
writes are pending. I can reproduce it 100% using btrfs send/receive.
It happens when I receive a set of streams on a freshly created FS. I
think I can exclude send/receive as the source of the problem as it
happens while receiving, e
however tried to move all calls to mnt_want_write above
i_mutex. So somewhere while merging this, it got mixed up. The
solution is to remove the mnt_want_write call completely from
mksubvol.
Reported-by: David Sterba
Signed-off-by: Alexander Block
---
fs/btrfs/ioctl.c |5 -
1 file changed, 5
On Fri, Aug 3, 2012 at 12:16 AM, David Sterba wrote:
> Hi,
>
> top commit (v3.5-9237) fc6bdb59a501740b28ed3b616641a22c8dc5dd31, observed with
> btrfs-next/master as well.
>
> mount:
> /dev/sdb on /mnt/sdb type btrfs (rw,relatime,space_cache)
>
> fresh mkfs, snapshot stresstest, stuck on first snap
On Thu, Aug 2, 2012 at 11:55 AM, Alexander Block
wrote:
> Hello Chris,
>
> You can find and pull a lot of fixes for btrfs send/receive in my git repo:
>
> git://github.com/ablock84/linux-btrfs.git for-chris
>
> These fixes are mostly the results of the reviews from A
now.
Alex.
----
Alexander Block (23):
Btrfs: add rdev to get_inode_info in send/receive
Btrfs: fix cur_ino < parent_ino case for send/receive
Btrfs: add missing check for dir != tmp_dir to is_first_ref
Btrfs: remove unused code with #if 0
Btrfs: add correct parent
On Mon, Jul 23, 2012 at 5:17 PM, Alex Lyakas
wrote:
> Hi Alexander,
> I did some testing of the case where same inode, but with a different
> generation, exists both in send_root and in parent_root.
> I know that this can happen primarily when "inode_cache" option is
> enabled. So first I just tes
On Mon, Jul 30, 2012 at 10:10 AM, Dan Carpenter
wrote:
> "trans->transid" is cpu endian but we want to store the data as little
> endian. "item->ctime.nsec" is only 32 bits, not 64.
>
> Signed-off-by: Dan Carpenter
> ---
> Applies to linux-next.
>
> diff --git a/fs/btrfs/ioctl.c b/fs/btrfs/ioctl
On Wed, Aug 1, 2012 at 2:01 PM, Anand jain wrote:
> From: Anand
>
> This patch adds creation-time to the snapshot list display,
> which would help user to better manage the snapshots when
> number of snapshots grow substantially. This patch is developed
> and on top of the send/receive btrfs
Hello,
I'm sending this to fsdevel as we're using vfs functions to open
inodes and read/write from them in btrfs send/receive and a review by
vfs folks would probably be a good thing here. I extracted the vfs
related functions from the current version and copied them into this
mail below.
write_b
On Tue, Jul 31, 2012 at 6:32 PM, Alex Lyakas
wrote:
> Hi Alexander,
> I relooked at my list of questions, and it seems that there are more
> general questions, and more focused questions. So here I list the
> "more focused" ones. I really appreciate if you can address them. I
> hope it's ok that I
On Mon, Jul 30, 2012 at 7:35 PM, Alex Lyakas
wrote:
> Hi,
>> I did not apply the patch but instead added a check for dir != tmp_dir
>> only. The reason to not check for gen is that I have a rule in my
>> mind: I only pass the generation number to functions where I want to
>> know the *current* sta
On Fri, Jul 27, 2012 at 4:37 PM, Alex Lyakas
wrote:
> Hi Alexander,
> your solution is simple and elegant. I this this issue is solved now. Thanks!
> Two minor issues:
> 1)
> /*
> * We need some special handling for inodes that get processed before the
> parent
> * directory got created. See pr
I have pushed a for-alex branch to github with a new approach for the
whole problem. Can you test this?
On Thu, Jul 26, 2012 at 4:07 PM, Alexander Block
wrote:
> I'm currently working on another solution for the initial problem. I
> will create a for-alex branch for you to test later.
└── [260] file1
>>
>> So when file1 is being processed, it is first renamed, as expected:
>> C_RENAME: A_PATH=file1, A_PATH_TO=o260-511-0
>> But then, when we finish it, we do:
>> C_TRUNCATE: A_PATH=o262-517-0/file1, A_SIZE=16
>>
>> So in some f
On Wed, Jul 25, 2012 at 7:20 PM, Alex Lyakas
wrote:
> Alexander,
>
>>> Same is true for BTRFS_FILE_EXTENT_PREALLOC extents, I think. Those
>>> also don't contain real data.
>>> So something like:
>>> if (left_disknr == 0 || left_type == BTRFS_FILE_EXTENT_REG) {
>>> ret = 1;
>>> got
Thanks for the review :)
On 07/18/2012 08:59 AM, Arne Jansen wrote:
On 04.07.2012 15:38, Alexander Block wrote:
This patch introduces the BTRFS_IOC_SEND ioctl that is
required for send. It allows btrfs-progs to implement
full and incremental sends. Patches for btrfs-progs will
follow.
I had
On Wed, Jul 25, 2012 at 7:10 PM, Alex Lyakas
wrote:
> Alexander,
> can you pls let know like a day or two before you run out of time?
> I have compiled a list of questions, but also want to do more testing
> before I publish them all.
My flight goes on 6. August...after that I don't know when I'm
On Wed, Jul 25, 2012 at 4:00 PM, Hugo Mills wrote:
> On Wed, Jul 25, 2012 at 12:41:56PM +0200, Alexander Block wrote:
>> On Mon, Jul 23, 2012 at 2:29 PM, Arne Jansen wrote:
>> > On 04.07.2012 15:39, Alexander Block wrote:
>> >> Hello all,
>> >>
>&
On Tue, Jul 10, 2012 at 5:26 PM, Alex Lyakas
wrote:
> Alexander,
> this focuses on area of sending file extents:
>
>> +static int is_extent_unchanged(struct send_ctx *sctx,
>> + struct btrfs_path *left_path,
>> + struct btrfs_key *ekey)
>>
On Tue, Jul 24, 2012 at 7:55 AM, Arne Jansen wrote:
> On 23.07.2012 21:41, Alexander Block wrote:
>> On Mon, Jul 16, 2012 at 4:56 PM, Arne Jansen wrote:
>>> On 04.07.2012 15:38, Alexander Block wrote:
>>>> +
>>>> + ret = btrfs_u
On Mon, Jul 23, 2012 at 2:29 PM, Arne Jansen wrote:
> On 04.07.2012 15:39, Alexander Block wrote:
>> Hello all,
>>
>> This is the user space side of btrfs send/receive.
>>
>> You can apply them manually or use my git repo:
>>
>> git://github.com/abl
On Thu, Jul 19, 2012 at 3:25 PM, Alex Lyakas
wrote:
> +static int process_link(const char *path, const char *lnk, void *user)
> +{
> + int ret;
> + struct btrfs_receive *r = user;
> + char *full_path = path_cat(r->full_subvol_path, path);
> +
> + if (g_verbose >= 1)
> +
On Wed, Jul 18, 2012 at 7:45 PM, Alex Lyakas
wrote:
> Hi Alexander,
> I am testing different scenarios in order to better understand the
> non-trivial magic of
> get_cur_path()/will_overwrite_ref()/did_overwrite_ref()/did_overwrite_first_ref().
> I hit the following issue, when testing full-send:
On Mon, Jul 16, 2012 at 4:56 PM, Arne Jansen wrote:
> On 04.07.2012 15:38, Alexander Block wrote:
>> This patch introduces uuids for subvolumes. Each
>> subvolume has it's own uuid. In case it was snapshotted,
>> it also contains parent_uuid. In case it was rec
On Thu, Jul 12, 2012 at 11:43 AM, Jan Schmidt wrote:
> From: Arne Jansen
>
> Often no exact match is wanted but just the next lower or
> higher item. There's a lot of duplicated code throughout
> btrfs to deal with the corner cases. This patch adds a
> helper function that can facilitate searchin
On Sat, Jul 7, 2012 at 3:37 AM, Shawn Landden wrote:
> From: Shawn Landen
>
> Fix creation of volumes using mkfs.btrfs on armv5.
>
> Signed-off-by: Shawn Landen
> ---
> ctree.h | 26 --
> volumes.c |5 +++--
> 2 files changed, 23 insertions(+), 8 deletions(-)
>
>
On Fri, Jul 6, 2012 at 2:03 PM, Goffredo Baroncelli wrote:
> On 07/06/2012 01:55 PM, Chris Mason wrote:
>> On Fri, Jul 06, 2012 at 02:51:43AM -0600, Alexander Block wrote:
>>> On Fri, Jul 6, 2012 at 12:34 AM, Goffredo Baroncelli
>>> wrote:
>>>> On 07/
On Fri, Jul 6, 2012 at 12:34 AM, Goffredo Baroncelli wrote:
> On 07/05/2012 06:51 PM, Alexander Block wrote:
>> Hello all,
>>
>> in IRC we had a discussion on how we could solve sending live
>> subvolumes and how to send subvolumes without the need to
>> ad
On Thu, Jul 5, 2012 at 9:24 PM, Ilya Dryomov wrote:
> On Thu, Jul 05, 2012 at 09:18:41PM +0200, Alexander Block wrote:
>> On Thu, Jul 5, 2012 at 9:01 PM, Zach Brown wrote:
>> > On 07/05/2012 11:59 AM, Ilya Dryomov wrote:
>> >
>> >> What if you are on a big-
On Thu, Jul 5, 2012 at 9:01 PM, Zach Brown wrote:
> On 07/05/2012 11:59 AM, Ilya Dryomov wrote:
>
>> What if you are on a big-endian machine with a big-endian kernel and
>> userspace? Everything on-disk should be little-endian, so if you are
>> going to write stuff you got from userspace to disk,
On Thu, Jul 5, 2012 at 7:08 PM, Zach Brown wrote:
>> +static long btrfs_ioctl_set_received_subvol(struct file *file,
>> + void __user *arg)
>> +{
>> + struct btrfs_ioctl_received_subvol_args *sa = NULL;
>
>
>> + ret = copy_to_user(arg, sa, size
Hello all,
in IRC we had a discussion on how we could solve sending live
subvolumes and how to send subvolumes without the need to
administrate/keep old snapshots for incremental sends. One of the
ideas was to introduce "sendshots", which are basically snapshots
where no refs are counted for file
On Thu, Jul 5, 2012 at 2:19 PM, Alex Lyakas
wrote:
> Alexander,
>
+ if (advance_left && !left_end_reached) {
+ ret = tree_advance(left_root, left_path,
&left_level,
+ left_root_level,
+
On Wed, Jul 4, 2012 at 3:38 PM, Alexander Block wrote:
> This patch introduces uuids for subvolumes.
> [...]
Stefan and Jan pointed out a problem with this patch that would result
in read_extent_buffer calls that read beyond the leaf size when an old
root item is found at the end of a l
On Thu, Jul 5, 2012 at 3:07 AM, Li Zefan wrote:
> On 2012/7/4 19:04, Alexander Block wrote:
>
>> On Wed, Jul 4, 2012 at 9:56 AM, Li Zefan wrote:
>>> On 2012/7/4 15:18, chandan r wrote:
>>>
>>>> This patch adds a new member to the 'struct btrfs_inode
On Wed, Jul 4, 2012 at 9:13 PM, Alex Lyakas
wrote:
> Hi Alex,
>
>> +static int tree_compare_item(struct btrfs_root *left_root,
>> +struct btrfs_path *left_path,
>> +struct btrfs_path *right_path,
>> +char *tmp_buf)
On Wed, Jul 4, 2012 at 8:27 PM, Alex Lyakas
wrote:
> Hi Alex,
>
>> + spin_lock(&left_root->root_times_lock);
>> + ctransid =
>> btrfs_root_ctransid(&left_root->root_item);
>> + spin_unlock(&left_root->root_times_lock);
>> +
Add btrfs_ioctl_send_args and BTRFS_IOC_SEND to ioctl.h
Signed-off-by: Alexander Block
---
ioctl.h | 11 +++
1 file changed, 11 insertions(+)
diff --git a/ioctl.h b/ioctl.h
index 77503e6..d35710c 100644
--- a/ioctl.h
+++ b/ioctl.h
@@ -282,6 +282,15 @@ struct
Update ctree.h and ioctl.h for the new uuid+times for subvolumes.
Signed-off-by: Alexander Block
---
ctree.h | 40 -
ioctl.h | 12 +
print-tree.c | 79 +-
3 files changed, 112 insertions
Add printing of inode transid and dir item data field.
Signed-off-by: Alexander Block
---
print-tree.c |9 -
1 file changed, 8 insertions(+), 1 deletion(-)
diff --git a/print-tree.c b/print-tree.c
index fc134c0..1377732 100644
--- a/print-tree.c
+++ b/print-tree.c
@@ -48,6 +48,12
Added missing btrfs_ioctl_clone_range_args and BTRFS_IOC_CLONE_RANGE
to ioctl.h
Signed-off-by: Alexander Block
---
ioctl.h | 10 +-
1 file changed, 9 insertions(+), 1 deletion(-)
diff --git a/ioctl.h b/ioctl.h
index 6670e08..023ca4c 100644
--- a/ioctl.h
+++ b/ioctl.h
@@ -281,6
Btrfs send/receive and btrfs props needs this ioctl. This patch
requires a recent kernel with the "Btrfs: use _IOR for
BTRFS_IOC_SUBVOL_GETFLAGS" patch applied.
Signed-off-by: Alexander Block
---
ioctl.h |2 ++
1 file changed, 2 insertions(+)
diff --git a/ioctl.h b/ioctl.h
ind
xtension)
Please read the kernel side email as well, especially the warnings!
Alex.
Alexander Block (6):
Btrfs-progs: add BTRFS_IOC_SUBVOL_GET/SETFLAGS to ioctl.h
Btrfs-progs: update ioctl.h to support clone range ioctl
Btrfs-progs: print inode transid and dir item data field in
de
the send.h header and the helper functions for TLV handling
and long path name handling and some other helpers. The second
part contains the actual send logic from send.c
Signed-off-by: Alexander Block
---
fs/btrfs/Makefile |2 +-
fs/btrfs/ioctl.h | 10 +
fs/btrfs/send.c | 1009
This function is used to find the differences between
two trees. The tree compare skips whole subtrees if it
detects shared tree blocks and thus is pretty fast.
Signed-off-by: Alexander Block
---
fs/btrfs/ctree.c | 425 ++
fs/btrfs/ctree.h
From: Arne Jansen
Often no exact match is wanted but just the next lower or
higher item. There's a lot of duplicated code throughout
btrfs to deal with the corner cases. This patch adds a
helper function that can facilitate searching.
Signed-off-by: Arne Jansen
---
fs/btrfs/ctree.c | 74
Make iref_to_path non static (needed in send) and rename
it to btrfs_iref_to_path
Signed-off-by: Alexander Block
---
fs/btrfs/backref.c | 10 +-
fs/btrfs/backref.h |4
2 files changed, 9 insertions(+), 5 deletions(-)
diff --git a/fs/btrfs/backref.c b/fs/btrfs/backref.c
index
reset the
fields.
Signed-off-by: Alexander Block
---
fs/btrfs/ctree.h | 43 ++
fs/btrfs/disk-io.c |2 +
fs/btrfs/inode.c |4 ++
fs/btrfs/ioctl.c | 96 ++--
fs/btrfs/ioctl.h | 13 +++
fs/
We used the wrong ioctl macro for the getflags ioctl before.
As we don't have the set/getflags ioctls in the user space ioctl.h
at the moment, it's safe to fix it now.
Reviewed-by: David Sterba
Signed-off-by: Alexander Block
---
fs/btrfs/ioctl.h |2 +-
1 file changed, 1 inser
rba
is found in his and my repo.
4. The patch "Btrfs: add helper for tree enumeration" from
Arne. Found in my repo.
5. The patch "Btrfs: use _IOR for BTRFS_IOC_SUBVOL_GETFLAGS".
Found in my repo and btrfs-next.
6. All the patches found in this patchset.
Alex.
Alexander
On Wed, Jul 4, 2012 at 9:56 AM, Li Zefan wrote:
> On 2012/7/4 15:18, chandan r wrote:
>
>> This patch adds a new member to the 'struct btrfs_inode' structure to hold
>> the file creation time.
>>
>
>
> Well, how do users use this file creation time? There's no syscall and there's
> no ioctl that e
On Tue, Jul 3, 2012 at 2:04 PM, Liu Bo wrote:
>>>
>>> +struct btrfs_ioctl_get_set_flags_args {
>>> + __u64 objectid;
>>> + __u64 flags;
>>> +};
>>> +
>> Shouldn't BTRFS_IOC_SUBVOL_GETFLAGS/BTRFS_IOC_SUBVOL_SETFLAGS also be
>> updated? Both still have __u64 as arguments. Also, my patche
On Fri, Jun 29, 2012 at 11:59 AM, Liu Bo wrote:
> I've modified 'btrfs subvolume list' to show a subvolume's attributes,
> such as readonly and default, and adopted a new structure for args for
> subvol_getflags/setflags.
>
> So here is the kernel side update.
>
> Signed-off-by: Liu Bo
> ---
> f
On Wed, Jun 27, 2012 at 7:41 PM, Goffredo Baroncelli wrote:
> Hi Alexander,
>
> On 06/27/2012 03:16 PM, Alexander Block wrote:
>> This patchset introduces the btrfs property subgroup. It is the
>> result of a discussion we had on IRC. I tried to make the properties
>&g
ond is the label property for devices.
Signed-off-by: Alexander Block
---
Makefile|5 +-
btrfs.c |1 +
cmds-property.c | 459 +++
commands.h |2 +
props.c | 114 ++
props.h | 43
Btrfs send/receive and btrfs props needs this ioctl. This patch
requires a recent kernel with the "Btrfs: use _IOR for
BTRFS_IOC_SUBVOL_GETFLAGS" patch applied.
Signed-off-by: Alexander Block
---
ioctl.h |2 ++
1 file changed, 2 insertions(+)
diff --git a/ioctl.h b/ioctl.h
ind
get_label prints the label at the moment. Change this so that
the label is returned and printing is done by the caller.
Also bail out when open_ctree failed to avoid a crash when btrfs fi
label is called on a device with no btrfs on it.
Signed-off-by: Alexander Block
---
btrfslabel.c
ls.c". They
are not needed anymore due to the 'btrfs prop list' command.
- Udjusted the subvol flags patch to be compatible to the "Btrfs: use
_IOR for BTRFS_IOC_SUBVOL_GETFLAGS" patch.
- Using -t instead of : prefix now.
- Changes are based on feedback fr
On Wed, Jun 27, 2012 at 4:25 AM, Liu Bo wrote:
> On 06/25/2012 05:20 AM, Alexander Block wrote:
>
>> This patchset introduces the btrfs filesystem property command. It is the
>> result of a discussion we had on IRC. I tried to make the properties
>> interface as generic an
We used the wrong ioctl macro for the getflags ioctl before.
As we don't have the set/getflags ioctls in the user space ioctl.h
at the moment, it's safe to fix it now.
Signed-off-by: Alexander Block
---
fs/btrfs/ioctl.h |2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff
I've removed this patch in the mean time. It was needed to build the
usage string
for btrfs fi props at runtime but I found a solution to do this at
compile time now.
On Sun, Jun 24, 2012 at 11:20 PM, Alexander Block
wrote:
> Make filesystem_cmd_group non const so that btrfs fi
get_label prints the label at the moment. Change this so that
the label is returned and printing is done by the caller.
Also bail out when open_ctree failed to avoid a crash when btrfs fi
label is called on a device with no btrfs on it.
Signed-off-by: Alexander Block
---
btrfslabel.c
Make filesystem_cmd_group non const so that btrfs fi prop can
generate the usage string at runtime. The commands member of
struct cmd_group is also non const now.
Signed-off-by: Alexander Block
---
cmds-filesystem.c |2 +-
commands.h|4 ++--
2 files changed, 3 insertions(+), 3
the label property for devices.
Signed-off-by: Alexander Block
---
Makefile |3 +-
btrfs.c |2 +
cmds-filesystem.c | 98
commands.h|3 +
props.c | 460 +
props.h | 45
Needed by btrfs fi prop.
Signed-off-by: Alexander Block
---
btrfs.c| 17 ++---
commands.h |2 --
help.c |2 ++
utils.c| 15 +++
utils.h|3 +++
5 files changed, 22 insertions(+), 17 deletions(-)
diff --git a/btrfs.c b/btrfs.c
index 88238d6
Btrfs send/receive needs this ioctl to make a subvolume
r/o after it was received.
---
ioctl.h |2 ++
1 file changed, 2 insertions(+)
diff --git a/ioctl.h b/ioctl.h
index f2e5d8d..d6311f6 100644
--- a/ioctl.h
+++ b/ioctl.h
@@ -312,6 +312,8 @@ struct btrfs_ioctl_logical_ino_args {
s are welcome.
Alex.
Alexander Block (5):
Btrfs-progs: add BTRFS_IOC_SUBVOL_GET/SETFLAGS to ioctl.h
Btrfs-progs: move skip_prefix and prefixcmp to utils.c
Btrfs-progs: let get_label return the label instead of of printing it
Btrfs-progs: make filesystem_cmd_group non const
Btrfs-pr
On Wed, Jun 20, 2012 at 8:11 PM, Goffredo Baroncelli wrote:
>
> Yes please, could someone explain the reason behind this decision ? May
> be there are valid reasons, I am asking only to know which ones ?
>
The reason is that at the moment no user visible operations span mount
boundaries
and there
On Wed, Jun 20, 2012 at 7:18 PM, Goffredo Baroncelli wrote:
> Hi Alexander,
>
> On 06/20/2012 12:35 PM, Alexander Block wrote:
>> The patch also does proper vfs mount checks, so cross mount
>> point reflinks are not possible with this patch. It only allows cross
>> refl
From: David Sterba
Lift the EXDEV condition and allow different root trees for files being
cloned, then pass source inode's root when searching for extents.
Cloning is not allowed to cross vfsmounts, ie. when two subvolumes from
one filesystem are mounted separately.
Signed-off-by: David Sterba
Hello,
This is the second attempt to bring in cross subvolume reflinks into btrfs.
The first attempt was NAKed due to missing vfs mount checks and a clear
description of what btrfs subvolumes are and probably also why cross
subvolume reflinks are ok in the case of btrfs. This version of the patch
lid values
(e.g. wanted_obejctid) in add_all_parents (leading to missed backrefs
or even crashes).
Signed-off-by: Alexander Block
Signed-off-by: Jan Schmidt
---
fs/btrfs/backref.c | 94 +---
1 file changed, 52 insertions(+), 42 deletions(-)
diff --git a/fs/bt
We introduce btrfs_next_old_item that uses
btrfs_next_old_leaf instead of btrfs_next_leaf.
btrfs_next_item is also changed to simply call
btrfs_next_old_item with time_seq being 0.
Signed-off-by: Alexander Block
---
fs/btrfs/ctree.h |9 +++--
1 file changed, 7 insertions(+), 2 deletions
Jan Schmidt for his help here.
Alexander Block (2):
Btrfs: introduce btrfs_next_old_item
Btrfs: don't assume to be on the correct extent in add_all_parents
fs/btrfs/backref.c | 94 +---
fs/btrfs/ctree.h |9 +++--
2 files change
On Fri, Jun 15, 2012 at 10:56 AM, Liu Bo wrote:
>> diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
>> index f6ab6f5..4d0ceed 100644
>> --- a/fs/btrfs/inode.c
>> +++ b/fs/btrfs/inode.c
>> @@ -4478,6 +4478,11 @@ int btrfs_dirty_inode(struct inode *inode)
>> static int btrfs_update_time(struct inod
.
Signed-off-by: Alexander Block
---
fs/btrfs/inode.c |5 +
fs/inode.c |2 ++
2 files changed, 7 insertions(+)
diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
index f6ab6f5..4d0ceed 100644
--- a/fs/btrfs/inode.c
+++ b/fs/btrfs/inode.c
@@ -4478,6 +4478,11 @@ int
On Mon, Jun 4, 2012 at 7:33 PM, Alex Lyakas
wrote:
>
> Yes, I also noticed that sometimes transid gets bumped up, but there
> is no actual change.
>
> So let's say you identify that a particular part of the tree is not
> shared anymore, and, say, eventually you get to a particular leaf
> within th
On Mon, Jun 4, 2012 at 5:10 PM, shyam btrfs wrote:
> Hi Alex, Jan,
>
> I was also interested in send/receive semantics & was thinking that if
> we adhere to the semantics as in
> http://www.mail-archive.com/linux-btrfs@vger.kernel.org/msg07482.html
> of:
>
> it is impossible to track the "deleted"
On Mon, Jun 4, 2012 at 2:39 PM, Alex Lyakas
wrote:
> Hi Jan, Alex,
>
> I have seen some discussions about btrfs send/receive functionality
> being developed by you. I have also been interested in this. I spent
> some time coding a prototype doing something like Alex described in
> http://www.spini
On Tue, May 29, 2012 at 10:14 AM, Boaz Harrosh wrote:
>
> Sounds like a real problem. I would suggest a few remedies.
> 1. Make a filesystem persistent parameter that says noatime/relatime/atime
> So the default if not specified on mount is taken as a property of
> the FS (mkfs can set it)
Tha
On Fri, May 25, 2012 at 10:42 PM, Alexander Block
wrote:
> On Fri, May 25, 2012 at 10:27 PM, Peter Maloney
> wrote:
>> On 05/25/2012 09:10 PM, Alexander Block wrote:
>>> Just to show some numbers I made a simple test on a fresh btrfs fs. I
>>> copied my hosts /usr
On Fri, May 25, 2012 at 10:27 PM, Peter Maloney
wrote:
> On 05/25/2012 09:10 PM, Alexander Block wrote:
>> Just to show some numbers I made a simple test on a fresh btrfs fs. I
>> copied my hosts /usr (4 gig) folder to that fs and checked metadata
>> usage with "bt
On Fri, May 25, 2012 at 5:35 PM, Alexander Block
wrote:
> Hello,
>
> (this is a resend with proper CC for linux-fsdevel and linux-kernel)
>
> I would like to start a discussion on atime in Btrfs (and other
> filesystems with snapshot support).
>
> As atime is updated on e
On Fri, May 25, 2012 at 6:32 PM, Freddie Cash wrote:
>
> On May 25, 2012 9:00 AM, "Alexander Block" wrote:
>>
>> On Fri, May 25, 2012 at 5:42 PM, Josef Bacik wrote:
>> > On Fri, May 25, 2012 at 05:35:37PM +0200, Alexander Block wrote:
>> >> He
On Fri, May 25, 2012 at 6:28 PM, Andreas Dilger wrote:
> On 2012-05-25, at 9:59, Alexander Block wrote:
>
> Are you talking about the atime for the primary copy, or the atime for the
> snapshots? IMHO, the atime should not be updated for a snapshot unless it is
> explicitly mou
On Fri, May 25, 2012 at 5:42 PM, Josef Bacik wrote:
> On Fri, May 25, 2012 at 05:35:37PM +0200, Alexander Block wrote:
>> Hello,
>>
>> (this is a resend with proper CC for linux-fsdevel and linux-kernel)
>>
>> I would like to start a discussion on atime in Btr
Hello,
(this is a resend with proper CC for linux-fsdevel and linux-kernel)
I would like to start a discussion on atime in Btrfs (and other
filesystems with snapshot support).
As atime is updated on every access of a file or directory, we get
many changes to the trees in btrfs that as always tri
On Fri, May 25, 2012 at 5:15 PM, Alexander Block
wrote:
> Hello,
>
> I would like to start a discussion on atime in Btrfs (and possibly
> other filesystems with snapshot support).
>
> As atime is updated on every access of a file or directory, we get
> many changes to the t
Hello,
I would like to start a discussion on atime in Btrfs (and possibly
other filesystems with snapshot support).
As atime is updated on every access of a file or directory, we get
many changes to the trees in btrfs that as always trigger cow
operations. This is no problem as long as the change
Before the update_time inode operation was indroduced, it was
not possible to prevent updates of atime on RO subvolumes.
btrfs_update_time does now check if the root is RO and skip
updating of atime.
This patch requires the update_time patches from Josef
Bacik.
Signed-off-by: Alexander Block
David just pointed me to the update_time patches from Josef. When these
get into the kernel, the RO snapshot + atime problem could be easily fixed.
Any idea when those get into the kernel?
On Thu, May 24, 2012 at 7:12 PM, Alexander Block
wrote:
> Hello,
>
> if a snapshot was created wi
Hello,
if a snapshot was created with -r and thus is read only, accessing
files in it will update the atime. I would expect that atime is not
updated on ro snapshots.
I tried to find out where the ro check is missing. The problem seems
to be that the vfs is only checking the mount, super block an
1 - 100 of 110 matches
Mail list logo