Re: [PATCH] Btrfs: send - pre-allocated file support for btrfs-send mechanism

2012-11-29 Thread Alexander Block
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

Re: [PATCH] Btrfs: send - sparse file support for btrfs-send mechanism

2012-11-29 Thread Alexander Block
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

Re: Bug in a couple of btrfs-progs components

2012-11-12 Thread Alexander Block
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

Re: [PATCH] Btrfs: merge inode_list in __merge_refs

2012-11-08 Thread Alexander Block
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

[PATCH] Btrfs: merge inode_list in __merge_refs

2012-11-08 Thread Alexander Block
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

Re: [ablock84-btrfs:btrfs-far 20/20] fs/btrfs/send.c:1683:51: sparse: incorrect type in argument 5 (different base types)

2012-11-06 Thread 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

Re: [RFC PATCH 0/5] btrfs-progs: snapshot diff function

2012-08-24 Thread Alexander Block
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 >>

Re: [PATCH] Btrfs: remove mnt_want_write call in btrfs_mksubvol

2012-08-03 Thread Alexander Block
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

wait_for_more_refs not waking up

2012-08-03 Thread Alexander Block
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

[PATCH] Btrfs: remove mnt_want_write call in btrfs_mksubvol

2012-08-02 Thread Alexander Block
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

Re: [current linus/master] deadlock during snapshot, sb_writers

2012-08-02 Thread Alexander Block
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

Re: Btrfs send/receive fixes and PULL request

2012-08-02 Thread Alexander Block
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

Btrfs send/receive fixes and PULL request

2012-08-02 Thread Alexander Block
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

Re: [RFC PATCH 7/7] Btrfs: introduce BTRFS_IOC_SEND for btrfs send/receive (part 2)

2012-08-01 Thread Alexander Block
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

Re: [patch] Btrfs: fix some endian bugs handling the root times

2012-08-01 Thread Alexander Block
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

Re: [PATCH] add crtime to the snapshot list

2012-08-01 Thread Alexander Block
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

btrfs send/receive review by vfs folks

2012-08-01 Thread Alexander Block
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

Re: Questions and notes about send/receive

2012-08-01 Thread Alexander Block
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

Re: btrfs send/receive: if new inode ino is less than its new directory ino, incorrect path is sent

2012-07-30 Thread Alexander Block
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

Re: btrfs send/receive: if new inode ino is less than its new directory ino, incorrect path is sent

2012-07-28 Thread Alexander Block
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

Re: btrfs send/receive: if new inode ino is less than its new directory ino, incorrect path is sent

2012-07-26 Thread Alexander Block
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.

Re: btrfs send/receive: if new inode ino is less than its new directory ino, incorrect path is sent

2012-07-26 Thread Alexander Block
└── [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

Re: [RFC PATCH 7/7] Btrfs: introduce BTRFS_IOC_SEND for btrfs send/receive (part 2)

2012-07-25 Thread Alexander Block
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

Re: [RFC PATCH 6/7] Btrfs: introduce BTRFS_IOC_SEND for btrfs send/receive (part 1)

2012-07-25 Thread Alexander Block
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

Re: [RFC PATCH 0/6] Experimental btrfs send/receive (btrfs-progs)

2012-07-25 Thread Alexander Block
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

Re: [RFC PATCH 0/6] Experimental btrfs send/receive (btrfs-progs)

2012-07-25 Thread Alexander Block
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, >> >> >&

Re: [RFC PATCH 7/7] Btrfs: introduce BTRFS_IOC_SEND for btrfs send/receive (part 2)

2012-07-25 Thread Alexander Block
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) >>

Re: [RFC PATCH 4/7] Btrfs: introduce subvol uuids and times

2012-07-25 Thread Alexander Block
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

Re: [RFC PATCH 0/6] Experimental btrfs send/receive (btrfs-progs)

2012-07-25 Thread Alexander Block
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

Re: [RFC PATCH 6/6] Btrfs-progs: add btrfs send/receive commands

2012-07-24 Thread Alexander Block
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) > +

Re: btrfs send/receive: if new inode ino is less than its new directory ino, incorrect path is sent

2012-07-24 Thread Alexander Block
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:

Re: [RFC PATCH 4/7] Btrfs: introduce subvol uuids and times

2012-07-23 Thread Alexander Block
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

Re: [PATCH v1 04/15] Btrfs: add helper for tree enumeration

2012-07-12 Thread Alexander Block
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

Re: [PATCH] fix unaligned memory accesses (Closes: #656955)

2012-07-07 Thread Alexander Block
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(-) > >

Re: [RFC] Btrfs "sendshots" and hidden snapshots

2012-07-06 Thread Alexander Block
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/

Re: [RFC] Btrfs "sendshots" and hidden snapshots

2012-07-06 Thread Alexander Block
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

Re: [RFC PATCH 4/7] Btrfs: introduce subvol uuids and times

2012-07-05 Thread Alexander Block
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-

Re: [RFC PATCH 4/7] Btrfs: introduce subvol uuids and times

2012-07-05 Thread Alexander Block
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,

Re: [RFC PATCH 4/7] Btrfs: introduce subvol uuids and times

2012-07-05 Thread Alexander Block
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

[RFC] Btrfs "sendshots" and hidden snapshots

2012-07-05 Thread Alexander Block
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

Re: [RFC PATCH 5/7] Btrfs: add btrfs_compare_trees function

2012-07-05 Thread Alexander Block
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, +

Re: [RFC PATCH 4/7] Btrfs: introduce subvol uuids and times

2012-07-05 Thread Alexander Block
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

Re: [PATCH] Btrfs: Add code to support file creation time.

2012-07-04 Thread Alexander Block
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

Re: [RFC PATCH 5/7] Btrfs: add btrfs_compare_trees function

2012-07-04 Thread Alexander Block
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)

Re: [RFC PATCH 5/7] Btrfs: add btrfs_compare_trees function

2012-07-04 Thread Alexander Block
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); >> +

[RFC PATCH 5/6] Btrfs-progs: update ioctl.h to support btrfs send ioctl

2012-07-04 Thread Alexander Block
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

[RFC PATCH 4/6] Btrfs-progs: update btrfs-progs for subvol uuid+times support

2012-07-04 Thread Alexander Block
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

[RFC PATCH 3/6] Btrfs-progs: print inode transid and dir item data field in debug-tree

2012-07-04 Thread Alexander Block
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

[RFC PATCH 2/6] Btrfs-progs: update ioctl.h to support clone range ioctl

2012-07-04 Thread Alexander Block
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

[RFC PATCH 1/6] Btrfs-progs: add BTRFS_IOC_SUBVOL_GET/SETFLAGS to ioctl.h

2012-07-04 Thread Alexander Block
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

[RFC PATCH 0/6] Experimental btrfs send/receive (btrfs-progs)

2012-07-04 Thread Alexander Block
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

[RFC PATCH 6/7] Btrfs: introduce BTRFS_IOC_SEND for btrfs send/receive (part 1)

2012-07-04 Thread Alexander Block
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

[RFC PATCH 5/7] Btrfs: add btrfs_compare_trees function

2012-07-04 Thread Alexander Block
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

[RFC PATCH 2/7] Btrfs: add helper for tree enumeration

2012-07-04 Thread Alexander Block
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

[RFC PATCH 3/7] Btrfs: make iref_to_path non static

2012-07-04 Thread Alexander Block
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

[RFC PATCH 4/7] Btrfs: introduce subvol uuids and times

2012-07-04 Thread Alexander Block
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/

[RFC PATCH 1/7] Btrfs: use _IOR for BTRFS_IOC_SUBVOL_GETFLAGS

2012-07-04 Thread Alexander Block
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

[RFC PATCH 0/7] Experimental btrfs send/receive (kernel side)

2012-07-04 Thread Alexander Block
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

Re: [PATCH] Btrfs: Add code to support file creation time.

2012-07-04 Thread Alexander Block
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

Re: [PATCH 2/3] Btrfs: update subvol_getflags/setflags to know new args from user

2012-07-03 Thread Alexander Block
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

Re: [PATCH 2/3] Btrfs: update subvol_getflags/setflags to know new args from user

2012-07-03 Thread Alexander Block
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

Re: [RFC PATCHv2 0/3] Btrfs-progs: introduce btrfs property subgroup

2012-06-27 Thread Alexander Block
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

[RFC PATCHv2 3/3] Btrfs-progs: introduce btrfs property subgroup

2012-06-27 Thread Alexander Block
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

[RFC PATCHv2 1/3] Btrfs-progs: add BTRFS_IOC_SUBVOL_GET/SETFLAGS to ioctl.h

2012-06-27 Thread Alexander Block
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

[RFC PATCHv2 2/3] Btrfs-progs: let get_label return the label instead of of printing it

2012-06-27 Thread Alexander Block
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

[RFC PATCHv2 0/3] Btrfs-progs: introduce btrfs property subgroup

2012-06-27 Thread Alexander Block
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

Re: [PATCH 0/5] introduce btrfs filesystem property command

2012-06-27 Thread Alexander Block
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

[PATCH] Btrfs: use _IOR for BTRFS_IOC_SUBVOL_GETFLAGS

2012-06-25 Thread Alexander Block
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

Re: [PATCH 4/5] Btrfs-progs: make filesystem_cmd_group non const

2012-06-24 Thread Alexander Block
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

[PATCH 3/5] Btrfs-progs: let get_label return the label instead of of printing it

2012-06-24 Thread Alexander Block
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

[PATCH 4/5] Btrfs-progs: make filesystem_cmd_group non const

2012-06-24 Thread Alexander Block
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

[PATCH 5/5] Btrfs-progs: introduce btrfs filesystem property command

2012-06-24 Thread Alexander Block
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

[PATCH 2/5] Btrfs-progs: move skip_prefix and prefixcmp to utils.c

2012-06-24 Thread Alexander Block
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

[PATCH 1/5] Btrfs-progs: add BTRFS_IOC_SUBVOL_GET/SETFLAGS to ioctl.h

2012-06-24 Thread Alexander Block
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 {

[PATCH 0/5] introduce btrfs filesystem property command

2012-06-24 Thread Alexander Block
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

Re: [PATCH] Allow cross subvolume reflinks (2nd attempt)

2012-06-20 Thread Alexander Block
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

Re: [PATCH] Allow cross subvolume reflinks (2nd attempt)

2012-06-20 Thread Alexander Block
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

[PATCH] btrfs: allow cross-subvolume file clone

2012-06-20 Thread Alexander Block
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

[PATCH] Allow cross subvolume reflinks (2nd attempt)

2012-06-20 Thread Alexander Block
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

[PATCH 2/2] Btrfs: don't assume to be on the correct extent in add_all_parents

2012-06-19 Thread Alexander Block
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

[PATCH 1/2] Btrfs: introduce btrfs_next_old_item

2012-06-19 Thread Alexander Block
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

[PATCH 0/2] Fix bugs in backref resolving code

2012-06-19 Thread Alexander Block
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

Re: [PATCH v2] Btrfs: don't update atime on RO subvolumes

2012-06-15 Thread Alexander Block
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

[PATCH v2] Btrfs: don't update atime on RO subvolumes

2012-06-15 Thread Alexander Block
. 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

Re: inquiry on btrfs send/receive

2012-06-05 Thread Alexander Block
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

Re: inquiry on btrfs send/receive

2012-06-04 Thread Alexander Block
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"

Re: inquiry on btrfs send/receive

2012-06-04 Thread Alexander Block
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

Re: atime and filesystems with snapshots (especially Btrfs)

2012-05-29 Thread Alexander Block
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

Re: atime and filesystems with snapshots (especially Btrfs)

2012-05-25 Thread Alexander Block
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

Re: atime and filesystems with snapshots (especially Btrfs)

2012-05-25 Thread Alexander Block
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

Re: atime and filesystems with snapshots (especially Btrfs)

2012-05-25 Thread Alexander Block
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

Re: atime and filesystems with snapshots (especially Btrfs)

2012-05-25 Thread Alexander Block
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

Re: atime and filesystems with snapshots (especially Btrfs)

2012-05-25 Thread Alexander Block
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

Re: atime and filesystems with snapshots (especially Btrfs)

2012-05-25 Thread Alexander Block
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

atime and filesystems with snapshots (especially Btrfs)

2012-05-25 Thread Alexander Block
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

Re: Btrfs, snapshots and atime problems

2012-05-25 Thread Alexander Block
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

Btrfs, snapshots and atime problems

2012-05-25 Thread Alexander Block
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

[PATCH] Btrfs: don't update atime on RO subvolumes

2012-05-25 Thread Alexander Block
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

Re: [BUG] atime on ro snapshots is updated when it should not

2012-05-25 Thread 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

[BUG] atime on ro snapshots is updated when it should not

2012-05-24 Thread Alexander Block
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   2   >