[PATCH 07/12] Btrfs: add checksum check for log

2011-06-30 Thread Liu Bo
If a inode is a BTRFS_INODE_NODATASUM one, it need not to look for csum items any more. Signed-off-by: Liu Bo liubo2...@cn.fujitsu.com --- fs/btrfs/tree-log.c |8 +--- 1 files changed, 5 insertions(+), 3 deletions(-) diff --git a/fs/btrfs/tree-log.c b/fs/btrfs/tree-log.c index 0ccffb1

[PATCH 04/12] Btrfs: introduce first sub trans

2011-06-30 Thread Liu Bo
In multi-thread situations, writeback of a file may span across several sub transactions, and we need to introduce first_sub_trans to get sub_transid of teh first sub transaction recorded, so that log code can skip file extents which have been logged or committed onto disk. Signed-off-by: Liu Bo

[PATCH 01/12] Btrfs: introduce sub transaction stuff

2011-06-30 Thread Liu Bo
log code. Signed-off-by: Liu Bo liubo2...@cn.fujitsu.com --- fs/btrfs/ctree.c | 35 ++- fs/btrfs/ctree.h |1 + fs/btrfs/disk-io.c |7 --- fs/btrfs/extent-tree.c | 10 ++ fs/btrfs/inode.c |4 ++-- fs/btrfs/ioctl.c

[PATCH] Btrfs: fix a bug of balance on full multi-disk partitions

2011-08-01 Thread Liu Bo
: rw=145, want=546560, limit=546147 attempt to access beyond end of device Signed-off-by: Liu Bo liubo2...@cn.fujitsu.com --- fs/btrfs/volumes.c | 17 + 1 files changed, 13 insertions(+), 4 deletions(-) diff --git a/fs/btrfs/volumes.c b/fs/btrfs/volumes.c index 19450bc..e5d57af

[PATCH] Btrfs: check if there is enough space for balancing smarter

2011-08-03 Thread Liu Bo
When checking if there is enough space for balancing a block group, since we do not take raid types into consideration, we do not account corrent amounts of space that we needed. This makes us do some extra work before we get ENOSPC. Signed-off-by: Liu Bo liubo2...@cn.fujitsu.com --- fs/btrfs

[PATCH 00/12 v5] Btrfs: improve write ahead log with sub transaction

2011-08-06 Thread Liu Bo
cur_trans, as David asked, I rebase the patchset to the latest for-linus branch. More tests are welcome! Liu Bo (12): Revert Btrfs: do not flush csum items of unchanged file data during treelog Btrfs: introduce sub transaction stuff Btrfs: update block generation if should_cow_block

[PATCH 11/12 v5] Btrfs: do not iput inode when inode is still in log

2011-08-06 Thread Liu Bo
We maintain the inode's logged_trans to avoid reloging it, but if we iput the inode and reread it, we'll get logged_trans to zero. So when an inode is still in log tree, and transaction is not committed yet, we do not iput the inode. Signed-off-by: Liu Bo liubo2...@cn.fujitsu.com --- fs/btrfs

[PATCH 04/12 v5] Btrfs: modify btrfs_drop_extents API

2011-08-06 Thread Liu Bo
We want to use btrfs_drop_extent() in log code. Signed-off-by: Liu Bo liubo2...@cn.fujitsu.com --- fs/btrfs/ctree.h|3 ++- fs/btrfs/file.c |9 +++-- fs/btrfs/inode.c|6 +++--- fs/btrfs/ioctl.c|4 ++-- fs/btrfs/tree-log.c |2 +- 5 files changed, 15

[PATCH 10/12 v5] Btrfs: kick off useless code

2011-08-06 Thread Liu Bo
fsync will wait for writeback till it finishes, and last_trans will get the real transid recorded in writeback, so it does not need an extra +1 to ensure fsync's process on the file. Signed-off-by: Liu Bo liubo2...@cn.fujitsu.com --- fs/btrfs/file.c | 13 - 1 files changed, 0

[PATCH 06/12 v5] Btrfs: still update inode trans stuff when size remains unchanged

2011-08-06 Thread Liu Bo
Due to DIO stuff, commit 1ef30be142d2cc60e2687ef267de864cf31be995 makes btrfs not call btrfs_update_inode when it does not update i_disk_size, but in buffer write case, we need to update btrfs internal inode's trans stuff, so that the log code can find the inode's changes. Signed-off-by: Liu Bo

[PATCH 09/12 v5] Btrfs: fix a bug of log check

2011-08-06 Thread Liu Bo
it will not interfere with others. Signed-off-by: Liu Bo liubo2...@cn.fujitsu.com --- fs/btrfs/btrfs_inode.h |5 - fs/btrfs/ctree.h |1 - fs/btrfs/disk-io.c |2 -- fs/btrfs/inode.c |2 -- fs/btrfs/transaction.h |1 - fs/btrfs/tree-log.c| 16

[PATCH 02/12 v5] Btrfs: introduce sub transaction stuff

2011-08-06 Thread Liu Bo
log code. Signed-off-by: Liu Bo liubo2...@cn.fujitsu.com --- fs/btrfs/ctree.c | 35 ++- fs/btrfs/ctree.h |1 + fs/btrfs/disk-io.c |7 --- fs/btrfs/extent-tree.c | 10 ++ fs/btrfs/inode.c |4 ++-- fs/btrfs/ioctl.c

[PATCH 07/12 v5] Btrfs: improve log with sub transaction

2011-08-06 Thread Liu Bo
, cause the common case is make changes on a _part_ of inode. Signed-off-by: Liu Bo liubo2...@cn.fujitsu.com --- fs/btrfs/tree-log.c | 180 --- 1 files changed, 128 insertions(+), 52 deletions(-) diff --git a/fs/btrfs/tree-log.c b/fs/btrfs/tree-log.c

[PATCH] Btrfs: use do_div to avoid compile errors on 32bit box

2011-08-19 Thread Liu Bo
When doing div operation of u64 type, we need to be careful and use do_div to avoid compile ERROR on 32bit box: ERROR: __udivdi3 [fs/btrfs/btrfs.ko] undefined! make[1]: *** [__modpost] Error 1 Signed-off-by: Liu Bo liubo2...@cn.fujitsu.com --- fs/btrfs/extent-tree.c |4 ++-- 1 files changed

[PATCH v2] Btrfs: use do_div to avoid compile errors on 32bit box

2011-08-19 Thread Liu Bo
When doing div operation of u64 type, we need to be careful and use do_div to avoid compile ERROR on 32bit box: ERROR: __udivdi3 [fs/btrfs/btrfs.ko] undefined! make[1]: *** [__modpost] Error 1 v1-v2: - fix stupid do_div() with type signed integer. Signed-off-by: Liu Bo liubo2...@cn.fujitsu.com

[PATCH] Btrfs: fix an oops when deleting snapshots

2011-08-23 Thread Liu Bo
remains unchanged. However, btrfs_ino() does not take this into account, and returns a wrong ino, and causes the oops. Signed-off-by: Liu Bo liubo2...@cn.fujitsu.com --- fs/btrfs/btrfs_inode.h |6 +- 1 files changed, 5 insertions(+), 1 deletions(-) diff --git a/fs/btrfs/btrfs_inode.h b

Re: Bunch of warn_slowpath_common with 3.1rc3

2011-08-24 Thread Liu Bo
On 08/24/2011 06:24 PM, Petr Hejl wrote: Hi, after upgrading, I receive these messages (or similar) all the time... P. Seems this patch can help you :) https://patchwork.kernel.org/patch/1074802/ thanks, liubo [ 142.542311] [ cut here ] [ 142.542323] WARNING:

Re: [PATCH] Btrfs: fix an oops of log replay

2011-08-31 Thread Liu Bo
On 08/31/2011 04:17 PM, Arne Jansen wrote: On 06.08.2011 10:35, Liu Bo wrote: When btrfs recovers from a crash, it may hit the oops below: [ cut here ] kernel BUG at fs/btrfs/inode.c:4580! [...] RIP: 0010:[a03df251] [a03df251] btrfs_add_link+0x161

Re: [PATCH 00/12 v5] Btrfs: improve write ahead log with sub transaction

2011-09-01 Thread Liu Bo
On 09/02/2011 01:38 AM, Mitch Harder wrote: On Sat, Aug 6, 2011 at 4:37 AM, Liu Bo liubo2...@cn.fujitsu.com wrote: I've fixed a bug and rebased this to the latest for-linus branch, and with applying my previous posted patch: [PATCH] Btrfs: fix an oops of log replay , I also test

[PATCH] Btrfs: fix misuse of trans block rsv

2011-09-08 Thread Liu Bo
At the beginning of create_pending_snapshot, trans-block_rsv is set to pending-block_rsv and is used for snapshot things, however, when it is done, we do not recover it as will. Signed-off-by: Liu Bo liubo2...@cn.fujitsu.com --- fs/btrfs/transaction.c |4 1 files changed, 4 insertions

[PATCH] Btrfs: reset to appropriate block rsv after orphan operations

2011-09-08 Thread Liu Bo
-tree.c:5711 btrfs_alloc_free_block+0x180/0x350 [btrfs]() ... WARNING: at fs/btrfs/inode.c:2193 btrfs_orphan_commit_root+0xb0/0xc0 [btrfs]() Signed-off-by: Liu Bo liubo2...@cn.fujitsu.com --- fs/btrfs/free-space-cache.c |4 1 files changed, 4 insertions(+), 0 deletions(-) diff --git a/fs

Re: WARNING: at fs/btrfs/inode.c:2193 btrfs_orphan_commit_root+0xb0/0xc0 [btrfs]()

2011-09-12 Thread Liu Bo
On 09/11/2011 05:47 AM, Martin Mailand wrote: Hi I am hitting this Warning reproducible, the workload is a ceph osd, kernel ist 3.1.0-rc5. Have posted a patch for this: http://marc.info/?l=linux-btrfsm=131547325515336w=2 thanks, liubo Best Regards, martin [ 5472.099766]

[BUG] kernel BUG at fs/btrfs/relocation.c:2502!

2011-09-21 Thread Liu Bo
Hi, While running my tool(attachment), I would encounter the BUG_ON, and I FAILED to find where went wrong :( The tool is with inode_cache option, and mainly do three things: a. run Chris's synctest in BACKGROUND b. create 100 snapshots c. after b, run btrfs fi balance You can follow these

[BUG] kernel BUG at fs/btrfs/relocation.c:2502!

2011-09-21 Thread Liu Bo
Hi, While running my tool(attachment), I would encounter the BUG_ON, and I FAILED to find where went wrong :( The tool is with inode_cache option, and mainly do three things: a. run Chris's synctest in BACKGROUND b. create 100 snapshots c. after b, run btrfs fi balance You can follow these

Re: btrfs won't mount

2011-09-27 Thread Liu Bo
On 09/27/2011 10:52 AM, Jim wrote: Hi Btrfs list, I am testing btrfs on a (to me) large filesystem. The tree consists of /data/sites/...0419/email.addr/files. Within each of the 420 directories are 2562 directories each with 20 files on average. The files range from small html files to

Re: [PATCH] Btrfs: fix missing clear_extent_bit

2011-09-28 Thread Liu Bo
On 09/28/2011 09:44 PM, Chris Mason wrote: Excerpts from Josef Bacik's message of 2011-09-28 08:34:03 -0400: On 09/28/2011 06:00 AM, Liu Bo wrote: We forget to clear inode's dirty_bytes and EXTENT_DIRTY at the end of write. We don't set EXTENT_DIRTY unless we failed to read a block and that's

Re: WARNING: at fs/btrfs/inode.c:2114

2011-10-10 Thread Liu Bo
On 10/10/2011 12:41 AM, Christian Brunner wrote: I just realized that this is still the same warning I reported some month ago. I thought that this had been fixed with 25d37af374263243214be9d912cbb46a8e469bc7 which is included in the kernel I'm using. So I think there must be another

Re: [PATCH 11/12 v5] Btrfs: do not iput inode when inode is still in log

2011-10-16 Thread Liu Bo
this one instead? From: Liu Bo liubo2...@cn.fujitsu.com [PATCH] Btrfs: deal with EEXIST after iput There are two cases when BTRFS_I(inode)-logged_trans is zero: a) an inode is just allocated; b) iput an inode and reread it. However, in b) if btrfs is not committed yet, and this inode _may_ still

Re: unresolved ref root error

2011-10-17 Thread Liu Bo
On 10/16/2011 09:37 AM, dima wrote: Hello, On a newly created filesystem with btrfs-progs-git-20111009 and the 3.1.0-rc8 kernel I am getting the following error when doing btrfsck after main OS installation fs tree 256 refs 2 unresolved ref root 256 dir 256 index 2 namelen 8

Re: Creation of pseudo items leads to (seemingly) duplicate inodes (BUG inside)

2011-10-18 Thread Liu Bo
On 10/19/2011 09:01 AM, Liu Bo wrote: On 10/19/2011 12:02 AM, Jan Schmidt wrote: Hi there, while playing with snapshots for btrfs send, I also encountered seemingly duplicate inodes, which are multiple BTRFS_EMPTY_SUBVOL_DIR_OBJECTID objects within the same directory. I can imagine software

[PATCH] Btrfs: add a missing block_rsv reset

2011-10-20 Thread Liu Bo
In commit ab1ca99b51df63901617b9f10f9a36d5d4972d78 (Btrfs: reset to appropriate block rsv after orphan operations), we miss a block_rsv reset and this sometimes leads us to the WARNING of btrfs_orphan_commit_root(). Signed-off-by: Liu Bo liubo2...@cn.fujitsu.com --- fs/btrfs/free-space-cache.c

Re: WARNING: at fs/btrfs/inode.c:2114

2011-10-20 Thread Liu Bo
On 10/17/2011 11:23 PM, Christian Brunner wrote: 2011/10/11 Christian Brunner c...@muc.de: 2011/10/11 Liu Bo liubo2...@cn.fujitsu.com: On 10/10/2011 12:41 AM, Christian Brunner wrote: I just realized that this is still the same warning I reported some month ago. I thought that this had

Re: [RFC PATCH] Btrfs: do not flush csum items of unchanged file data during treelog

2011-10-25 Thread Liu Bo
On 10/26/2011 07:18 AM, Myroslav Opyr wrote: liubo liubo2009 at cn.fujitsu.com writes: On 04/22/2011 09:28 AM, Chris Mason wrote: Right, at the very least we want to just use one bit of that field instead of all 8. But keeping a sub-transid and putting that in the generation field of the

Re: [PATCH] Btrfs: fix tree corruption after multi-thread snapshots and inode cache flush

2011-10-26 Thread Liu Bo
On 09/29/2011 10:59 PM, Chris Mason wrote: Excerpts from Arne Jansen's message of 2011-09-29 04:40:30 -0400: On 29.09.2011 10:36, Yan, Zheng wrote: On 09/29/2011 04:18 PM, Liu Bo wrote: On 09/29/2011 12:25 PM, Yan, Zheng wrote: On 09/29/2011 10:00 AM, Liu Bo wrote: The btrfs snapshotting

Re: new integration-danger branch pushed out (kernel)

2011-11-01 Thread Liu Bo
credit to Liu Bo and Fujitsu for getting the sub-transid work going, any bugs in the pushed patch are probably ones I introduced. integration-danger merges in the new sub-transid logging code along with all of the fixes Dave Sterba has been tracking, and Josef's code. I'm still merging

Re: new integration-danger branch pushed out (kernel)

2011-11-01 Thread Liu Bo
On 11/01/2011 06:55 PM, Chris Mason wrote: On Tue, Nov 01, 2011 at 05:22:20PM +0800, Liu Bo wrote: Hi, On 11/01/2011 10:49 AM, Chris Mason wrote: Hi everyone, I've pushed out a new integration branch, but it is not for general use. I'm still going through and hammering on the new logging

[PATCH 0/5] fix bugs of sub transid

2011-11-21 Thread Liu Bo
) the third one has already been in for-linus branch, but not in danger branch, so I add it here for the integrity, 4) the fourth one fixes a transid mismatch bug, 5) the fifth one fixes the disk extent refs' generation bug. Any advices and tests are welcome! Liu Bo (5): Btrfs: fix btrfs_copy_root

[PATCH 2/5] Btrfs: fix bug with heavy snapshot and heavy fsync

2011-11-21 Thread Liu Bo
We've forgotten to update root's last_snapshot gen to the latest sub transid, so that we will free some extent buffers unexpectedly. And this will cause a inconsistent tree crash. Signed-off-by: Liu Bo liubo2...@cn.fujitsu.com --- fs/btrfs/transaction.c |3 ++- 1 files changed, 2 insertions

[PATCH 1/5] Btrfs: fix btrfs_copy_root warning

2011-11-21 Thread Liu Bo
Should check for sub transid instead. Signed-off-by: Liu Bo liubo2...@cn.fujitsu.com --- fs/btrfs/ctree.c |2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/fs/btrfs/ctree.c b/fs/btrfs/ctree.c index fa34b74..4a96337 100644 --- a/fs/btrfs/ctree.c +++ b/fs/btrfs/ctree.c

[PATCH 4/5] Btrfs: filter shared blocks in should_cow_block

2011-11-21 Thread Liu Bo
is not same with sub transid. Signed-off-by: Liu Bo liubo2...@cn.fujitsu.com --- fs/btrfs/ctree.c | 32 +--- 1 files changed, 21 insertions(+), 11 deletions(-) diff --git a/fs/btrfs/ctree.c b/fs/btrfs/ctree.c index 2b38acd..6cc9529 100644 --- a/fs/btrfs/ctree.c +++ b

[PATCH 3/5] Btrfs: fix inconsistent tree

2011-11-21 Thread Liu Bo
Signed-off-by: Liu Bo liubo2...@cn.fujitsu.com --- fs/btrfs/ctree.c | 17 - fs/btrfs/ctree.h |2 ++ fs/btrfs/transaction.c |8 3 files changed, 26 insertions(+), 1 deletions(-) diff --git a/fs/btrfs/ctree.c b/fs/btrfs/ctree.c index 4a96337..2b38acd

[PATCH 5/5] Btrfs: update disk extent ref generation

2011-11-21 Thread Liu Bo
, the udpate will be easy. When we update a block's generation, we also update the related ref's generation in the rbtree. Signed-off-by: Liu Bo liubo2...@cn.fujitsu.com --- fs/btrfs/ctree.c | 32 fs/btrfs/ctree.h |6 +++- fs/btrfs/delayed-ref.c |7 - fs

Re: Segmentation Faults

2011-11-22 Thread Liu Bo
On 11/23/2011 06:02 AM, Timothy Crone wrote: Okay, I got it. Dmesg had what I think you need. Some relavent commands then the trace follow. I was trying to delete my Chrome cache, because I determined that this part of the file system was possibly causing my problems. I've heard of others

[PATCH] Btrfs: drop spin lock when memory alloc fails

2011-11-22 Thread Liu Bo
Drop spin lock in convert_extent_bit() when memory alloc fails, otherwise, it will be a deadlock. Signed-off-by: Liu Bo liubo2...@cn.fujitsu.com --- fs/btrfs/extent_io.c | 24 1 files changed, 16 insertions(+), 8 deletions(-) diff --git a/fs/btrfs/extent_io.c b/fs

Re: [PATCH 0/5] fix bugs of sub transid

2011-11-28 Thread Liu Bo
On 11/28/2011 11:10 PM, David Sterba wrote: On Mon, Nov 21, 2011 at 06:10:19PM +0800, Liu Bo wrote: We've been sufferring two big bugs with sub transid: one is a bug related to root's last_snapshot, the other is a bug related to disk extent refs' generation. Do you have a testcase

Re: [PATCH 0/5] fix bugs of sub transid -- WARNING: at fs/btrfs/ctree.c:432

2011-11-30 Thread Liu Bo
On 11/30/2011 12:17 AM, David Sterba wrote: On Tue, Nov 29, 2011 at 09:18:35AM +0800, Liu Bo wrote: a) For the first one (last_snapshot bug), The test involves three processes (derived from Chris): mkfs.btrfs /dev/xxx mount /dev/xxx /mnt 1) run compilebench -i 30 --makej -D /mnt Let

Re: btrfs oops when defrag directories

2011-12-04 Thread Liu Bo
On 12/05/2011 03:21 AM, Sergey V. wrote: When i do `find -type d -xdev -print0 | xargs -0 btrfs fi defrag` to try to defragments just the metadata held by the directory object (as noted at wiki [1]), i get several oopses. kernel version is 3.2.0-rc3; mount options is

Re: Extreme slowdown

2011-12-15 Thread Liu Bo
On 12/16/2011 02:49 AM, Tobias wrote: Hi all! My BTRFS-FS ist getting really slow. Reading is ok, writing is slow and deleting is horrible slow. There are many files and many links on the FS. # btrfs filesystem df /srv/storage Data: total=3.09TB, used=3.07TB System, DUP: total=8.00MB,

Re: [PATCH] btrfs: add new ioctl to determine size of compressed file

2011-12-19 Thread Liu Bo
On 12/19/2011 10:17 PM, David Sterba wrote: Go through all extents of a file in a given [start,end) range and sum for: * regular extent: -block_len, size is already rounded up to blocks * inline extents: length rounded up to 512 The range is start inclusive / end exclusive. For the whole

Re: bad tree block problems

2011-12-20 Thread Liu Bo
On 12/21/2011 07:39 AM, Chris Baines wrote: On 20 December 2011 23:36, Chris Mason chris.ma...@oracle.com wrote: On Tue, Dec 20, 2011 at 10:34:20PM +, Chris Baines wrote: Hello, I am having problems with my btrfs filesystem, I have a 1TB RAID-1 setup that I use as /home. When accessing

[PATCH 4/4] Btrfs: do not count in readonly bytes

2012-07-04 Thread Liu Bo
If a block group is ro, do not count its entries in when we dump space info. Signed-off-by: Liu Bo liubo2...@cn.fujitsu.com --- fs/btrfs/free-space-cache.c |2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/fs/btrfs/free-space-cache.c b/fs/btrfs/free-space-cache.c index

[PATCH 2/4] Btrfs: fix a bug of writting free space cache with nodatacow option

2012-07-04 Thread Liu Bo
-by: Liu Bo liubo2...@cn.fujitsu.com --- fs/btrfs/inode.c |6 +- 1 files changed, 5 insertions(+), 1 deletions(-) diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c index 1f72817..4892396 100644 --- a/fs/btrfs/inode.c +++ b/fs/btrfs/inode.c @@ -1245,7 +1245,11 @@ next_slot

[PATCH 1/4] Btrfs: do not abort transaction in prealloc case

2012-07-04 Thread Liu Bo
During disk balance, we prealloc new file extent for file data relocation, but we may fail in 'no available space' case, and only under this case can the error be reported to userspace, so we do not need to abort transaction here. Signed-off-by: Liu Bo liubo2...@cn.fujitsu.com --- fs/btrfs

[PATCH 3/4] Btrfs: add ro notification to dump_space_info

2012-07-04 Thread Liu Bo
Block group has ro attributes, make dump_space_info show it. Signed-off-by: Liu Bo liubo2...@cn.fujitsu.com --- fs/btrfs/extent-tree.c |5 +++-- 1 files changed, 3 insertions(+), 2 deletions(-) diff --git a/fs/btrfs/extent-tree.c b/fs/btrfs/extent-tree.c index bbe79ab..f29859b 100644

Re: Long btrfs hangs during suspend to RAM / BTRFS warning (device dm-0): Aborting unused transaction

2012-07-05 Thread Liu Bo
On 07/04/2012 11:15 PM, Marc MERLIN wrote: On Wed, Jul 04, 2012 at 01:58:31PM +0800, Liu Bo wrote: The dmesg log, sysrq log and stack dump info can usually be very helpful. From your report, we can see the csum error and hang on log, 'no csum' is not that bad while hanging-on is serious

Re: [PATCH 3/3] Btrfs-progs: add 's' option for 'btrfs subvolume list'

2012-07-05 Thread Liu Bo
On 07/04/2012 11:41 PM, David Sterba wrote: On Fri, Jun 29, 2012 at 06:00:38PM +0800, Liu Bo wrote: We want 'btrfs subvolume list' to act as 'ls', which means that we can not only list out all the subvolumes we have, but also list each single one. So this patch add 's' option to show

Re: Oops on mounting (presumably damaged) btrfs filesystem

2012-07-05 Thread Liu Bo
On 07/06/2012 03:52 AM, Nick Bowler wrote: Hi folks, I got bored while running the Debian installer (installing to btrfs) so I hard-reset the machine during install. The filesystem presumably suffered due to the reset, but I'm now getting oopses on attempts to mount it again. I get

[PATCH 3/4 v2] Btrfs: add ro notification to dump_space_info

2012-07-06 Thread Liu Bo
Block group has ro attributes, make dump_space_info show it. Signed-off-by: Liu Bo liubo2...@cn.fujitsu.com --- v1-v2: make printk more friendly to grep. fs/btrfs/extent-tree.c |6 +++--- 1 files changed, 3 insertions(+), 3 deletions(-) diff --git a/fs/btrfs/extent-tree.c b/fs/btrfs/extent

[PATCH 1/4 v2] Btrfs: do not abort transaction in prealloc case

2012-07-06 Thread Liu Bo
-off-by: Liu Bo liubo2...@cn.fujitsu.com --- v1-v2: adopt an easier and cleaner way: checking return value instead of adding more arguments. fs/btrfs/extent-tree.c |6 +- 1 files changed, 5 insertions(+), 1 deletions(-) diff --git a/fs/btrfs/extent-tree.c b/fs/btrfs/extent-tree.c

[PATCH 4/4 v2] Btrfs: do not count in readonly bytes

2012-07-06 Thread Liu Bo
If a block group is ro, do not count its entries in when we dump space info. Signed-off-by: Liu Bo liubo2...@cn.fujitsu.com --- fs/btrfs/free-space-cache.c |2 +- 1 files changed, 1 insertions(+), 1 deletions(-) diff --git a/fs/btrfs/free-space-cache.c b/fs/btrfs/free-space-cache.c index

[PATCH 2/4 v2] Btrfs: fix a bug of writting free space cache during balance

2012-07-06 Thread Liu Bo
inode and bail out with setting cache state DC_WRITTEN. We can benifit from it since it saves us another 'pre-allocation' part which usually costs a lot. Signed-off-by: Liu Bo liubo2...@cn.fujitsu.com Signed-off-by: Miao Xie mi...@cn.fujitsu.com --- v1-v2: figure out the real deep cause

Re: [PATCH 1/4] Btrfs: use radix tree for checksum

2012-07-07 Thread Liu Bo
On 07/06/2012 11:37 PM, Chris Mason wrote: On Wed, Jun 13, 2012 at 07:50:52PM -0600, Liu Bo wrote: On 06/14/2012 12:07 AM, Zach Brown wrote: int set_state_private(struct extent_io_tree *tree, u64 start, u64 private) { [...] +ret = radix_tree_insert(tree-csum, (unsigned long)start

[PATCH 1/2] Btrfs: fix btrfs_is_free_space_inode to recognize btree inode

2012-07-10 Thread Liu Bo
For btree inode, its root is also 'tree root', so btree inode can be misunderstood as a free space inode. We should add one more check for btree inode. Signed-off-by: Liu Bo liubo2...@cn.fujitsu.com --- fs/btrfs/btrfs_inode.h |6 -- 1 files changed, 4 insertions(+), 2 deletions(-) diff

[PATCH 2/2] Btrfs: kill root from btrfs_is_free_space_inode

2012-07-10 Thread Liu Bo
Since root can be fetched via BTRFS_I macro directly, we can save an args for btrfs_is_free_space_inode(). Signed-off-by: Liu Bo liubo2...@cn.fujitsu.com --- fs/btrfs/btrfs_inode.h |5 +++-- fs/btrfs/extent-tree.c |2 +- fs/btrfs/file-item.c |2 +- fs/btrfs/inode.c | 22

Re: Please hammer my for-linus branch

2012-07-10 Thread Liu Bo
On 07/10/2012 08:18 PM, Daniel J Blueman wrote: On 2 July 2012 12:20, Liu Bo liubo2...@cn.fujitsu.com wrote: On 07/02/2012 11:35 AM, Daniel J Blueman wrote: Hi everyone, I've got a nice set of fixes from Josef, Jan, Ilya and others in my for-linus branch: git://git.kernel.org/pub/scm

Re: [PATCH RFC] Btrfs: improve multi-thread buffer read

2012-07-10 Thread Liu Bo
On 07/11/2012 02:58 AM, Josef Bacik wrote: On Tue, Jul 10, 2012 at 05:27:59AM -0600, Liu Bo wrote: While testing with my buffer read fio jobs[1], I find that btrfs does not perform well enough. Here is a scenario in fio jobs: We have 4 threads, t1 t2 t3 t4, starting to buffer read a same

Re: [PATCH RFC] Btrfs: improve multi-thread buffer read

2012-07-11 Thread Liu Bo
On 07/11/2012 08:31 PM, Josef Bacik wrote: On Tue, Jul 10, 2012 at 07:57:55PM -0600, Liu Bo wrote: On 07/11/2012 02:58 AM, Josef Bacik wrote: On Tue, Jul 10, 2012 at 05:27:59AM -0600, Liu Bo wrote: While testing with my buffer read fio jobs[1], I find that btrfs does not perform well enough

Re: [PATCH RFC] Btrfs: improve multi-thread buffer read

2012-07-11 Thread Liu Bo
On 07/12/2012 01:21 AM, Josef Bacik wrote: On Tue, Jul 10, 2012 at 05:27:59AM -0600, Liu Bo wrote: While testing with my buffer read fio jobs[1], I find that btrfs does not perform well enough. Here is a scenario in fio jobs: We have 4 threads, t1 t2 t3 t4, starting to buffer read a same

[PATCH v2] Btrfs: improve multi-thread buffer read

2012-07-11 Thread Liu Bo
/ [READ] filename=foobar size=2000M invalidate=1 Signed-off-by: Liu Bo liubo2...@cn.fujitsu.com --- v1-v2: if we fail to make a allocation, just fall back to the old way to read page. fs/btrfs/extent_io.c | 41 +++-- 1 files changed, 39 insertions(+), 2

Re: btrfs benchmark

2012-07-12 Thread Liu Bo
On 07/12/2012 05:17 PM, Bernd Kohler wrote: Hi @ all, in the last edition of the german Linux-Magazin, there has been an article about Linux filesystem performance test - the article is titled Formel Storage - Linux-Dateisystem im Leistungstest. The author of this article, Mr Michael

Re: [PATCH v2] Btrfs: improve multi-thread buffer read

2012-07-12 Thread Liu Bo
On 07/12/2012 02:04 PM, Chris Mason wrote: On Wed, Jul 11, 2012 at 08:13:51PM -0600, Liu Bo wrote: While testing with my buffer read fio jobs[1], I find that btrfs does not perform well enough. Here is a scenario in fio jobs: We have 4 threads, t1 t2 t3 t4, starting to buffer read a same

[PATCH v3] Btrfs: improve multi-thread buffer read

2012-07-16 Thread Liu Bo
/ [READ] filename=foobar size=2000M invalidate=1 Signed-off-by: Liu Bo liubo2...@cn.fujitsu.com --- v2-v3: adopt kernel native pagevec instead of kmalloc. v1-v2: if we fail to make a allocation, just fall back to the old way to read page. fs/btrfs/extent_io.c | 16 +++- 1

[PATCH] Btrfs: cleanup for unused ref cache stuff

2012-07-17 Thread Liu Bo
As ref cache has been removed from btrfs, there is no user on its lock and its check. Signed-off-by: Liu Bo liubo2...@cn.fujitsu.com --- fs/btrfs/ctree.h |3 --- fs/btrfs/disk-io.c |5 - 2 files changed, 0 insertions(+), 8 deletions(-) diff --git a/fs/btrfs/ctree.h b/fs/btrfs

Re: [PATCH 2/2] Btrfs: kill root from btrfs_is_free_space_inode

2012-07-17 Thread Liu Bo
On 07/17/2012 09:43 PM, David Sterba wrote: On Tue, Jul 10, 2012 at 07:28:39PM +0800, Liu Bo wrote: Since root can be fetched via BTRFS_I macro directly, we can save an args for btrfs_is_free_space_inode(). I see a great opportunity to rename the function :) It does not cover just the free

Re: [PATCH 1/2] Btrfs: fix btrfs_is_free_space_inode to recognize btree inode

2012-07-18 Thread Liu Bo
something in btrfs's wiki page? And thanks for your energy on btrfs! :) thanks, liubo Thanks, Alex. On Tue, Jul 10, 2012 at 2:28 PM, Liu Bo liubo2...@cn.fujitsu.com wrote: For btree inode, its root is also 'tree root', so btree inode can be misunderstood as a free space inode. We should

Re: [PATCH v3] Btrfs: improve multi-thread buffer read

2012-07-18 Thread Liu Bo
On 07/18/2012 07:57 PM, David Sterba wrote: On Mon, Jul 16, 2012 at 02:05:25PM -0400, Liu Bo wrote: v2-v3: adopt kernel native pagevec instead of kmalloc. Do we really use the pagevec features here? It looks more like a fancy way to employ a simple array ... And with a simple array we

Re: Long btrfs hangs during suspend to RAM / BTRFS warning (device

2012-07-18 Thread Liu Bo
On 07/19/2012 02:01 AM, Marc MERLIN wrote: Just to put a lid (maybe) on that thread, I now think that it's very possible my btrfs hangs when the drive was almost full (10GB remaining though) were due to my Crucial RealSSD C300, which has just mostly died yesterday after (I think) the

Re: [PATCH v3] Btrfs: improve multi-thread buffer read

2012-07-18 Thread Liu Bo
On 07/19/2012 10:05 AM, David Sterba wrote: On Thu, Jul 19, 2012 at 09:11:06AM +0800, Liu Bo wrote: On 07/18/2012 07:57 PM, David Sterba wrote: On Mon, Jul 16, 2012 at 02:05:25PM -0400, Liu Bo wrote: v2-v3: adopt kernel native pagevec instead of kmalloc. Do we really use the pagevec

[PATCH] Xfstests/254: add more cases for testing btrfs snapshot in 254

2012-07-19 Thread Liu Bo
From: Zhou Bo zhoub-f...@cn.fujitsu.com This patch adds more cases in 254 for testing btrfs snapshot. Signed-off-by: Zhou Bo zhoub-f...@cn.fujitsu.com --- 254 | 321 ++- 1 files changed, 317 insertions(+), 4 deletions(-) diff

[PATCH] Xfstests/254: add more cases for testing btrfs snapshot in 254

2012-07-19 Thread Liu Bo
From: Zhou Bo zhoub-f...@cn.fujitsu.com This patch adds more cases in 254 for testing btrfs snapshot. Signed-off-by: Zhou Bo zhoub-f...@cn.fujitsu.com --- 254 | 321 ++- 1 files changed, 317 insertions(+), 4 deletions(-) diff

Re: [PATCH] Xfstests/254: add more cases for testing btrfs snapshot in 254

2012-07-19 Thread Liu Bo
Please ignore this...I forgot to CC xfs, sorry. thanks, liubo On 07/19/2012 05:24 PM, Liu Bo wrote: From: Zhou Bo zhoub-f...@cn.fujitsu.com This patch adds more cases in 254 for testing btrfs snapshot. Signed-off-by: Zhou Bo zhoub-f...@cn.fujitsu.com --- 254 | 321

Re: [PATCH] Xfstests/254: add more cases for testing btrfs snapshot in 254

2012-07-19 Thread Liu Bo
On 07/20/2012 08:24 AM, Dave Chinner wrote: On Thu, Jul 19, 2012 at 06:27:07PM +0800, Liu Bo wrote: From: Zhou Bo zhoub-f...@cn.fujitsu.com This patch adds more cases in 254 for testing btrfs snapshot. Signed-off-by: Zhou Bo zhoub-f...@cn.fujitsu.com I think it is better to create a new

Re: [PATCH v3] Btrfs: improve multi-thread buffer read

2012-07-19 Thread Liu Bo
On 07/20/2012 11:36 AM, David Sterba wrote: On Thu, Jul 19, 2012 at 10:31:05AM +0800, Liu Bo wrote: 128 is too much, this would snip 128 * 8 = 1K off the stack. That's why I give up 128. :) It's good as a reference point, nobody says it should stay at 128. But as Chris suggested, my test

[PATCH v4] Btrfs: improve multi-thread buffer read

2012-07-19 Thread Liu Bo
/ [READ] filename=foobar size=2000M invalidate=1 Signed-off-by: Liu Bo liubo2...@cn.fujitsu.com --- v3-v4: adopt a simple page array instead of pagevec to avoid side effect that may be brought by pagevec_release(). v2-v3: adopt kernel native pagevec instead of kmalloc. v1-v2: if we fail

Re: [PATCH v4] Btrfs: improve multi-thread buffer read

2012-07-20 Thread Liu Bo
On 07/21/2012 02:42 AM, Zach Brown wrote: +struct page *page; +int i = 0; +int nr = 0; i doesn't need to be initialized. for (page_idx = 0; page_idx nr_pages; page_idx++) { -struct page *page = list_entry(pages-prev, struct page, lru); +page =

[PATCH v5] Btrfs: improve multi-thread buffer read

2012-07-20 Thread Liu Bo
/ [READ] filename=foobar size=2000M invalidate=1 Signed-off-by: Liu Bo liubo2...@cn.fujitsu.com --- v4-v5: avoid another ref inc on page. v3-v4: adopt a simple page array instead of pagevec to avoid side effect that may be brought by pagevec_release(). v2-v3: adopt kernel native pagevec

[PATCH] Xfstests: add btrfs snapshot function test

2012-07-20 Thread Liu Bo
From: Zhou Bo zhoub-f...@cn.fujitsu.com This patch adds btrfs snapshot function test to xfstests. Signed-off-by: Zhou Bo zhoub-f...@cn.fujitsu.com --- 285 | 365 +++ 285.out |2 + group |1 + 3 files changed, 368

[PATCH 1/2] Btrfs-progs: search subvolumes with proper objectid

2012-07-24 Thread Liu Bo
Btrfs's subvolume/snapshot is limited to [BTRFS_FIRST_FREE_OBJECTID, BTRFS_LAST_FREE_OBJECTID], so just apply the range. Signed-off-by: Liu Bo liubo2...@cn.fujitsu.com --- btrfs-list.c |6 -- 1 files changed, 4 insertions(+), 2 deletions(-) diff --git a/btrfs-list.c b/btrfs-list.c index

[PATCH 2/2] Btrfs-progs: show generation in command btrfs subvol list

2012-07-24 Thread Liu Bo
This adds the ability to show root's generation when we use btrfs subvol list. Signed-off-by: Liu Bo liubo2...@cn.fujitsu.com --- btrfs-list.c | 61 - 1 files changed, 55 insertions(+), 6 deletions(-) diff --git a/btrfs-list.c b/btrfs

[PATCH 0/6 v3][RFC] rwlock for extent state

2012-07-25 Thread Liu Bo
changes on invalidatepage() and rebase to the latest btrfs upstream. Liu Bo (6): Btrfs: merge adjacent states as much as possible Btrfs: add helper function to test if we can merge state Btrfs: break clear_state_bit into two parts Btrfs: apply rwlock for extent state Btrfs: batch

[PATCH 3/6 v3][RFC] Btrfs: break clear_state_bit into two parts

2012-07-25 Thread Liu Bo
. Signed-off-by: Liu Bo liubo2...@cn.fujitsu.com --- fs/btrfs/extent_io.c | 22 ++ 1 files changed, 18 insertions(+), 4 deletions(-) diff --git a/fs/btrfs/extent_io.c b/fs/btrfs/extent_io.c index 4c6dd85..a84d904 100644 --- a/fs/btrfs/extent_io.c +++ b/fs/btrfs/extent_io.c

[PATCH 1/6 v3][RFC] Btrfs: merge adjacent states as much as possible

2012-07-25 Thread Liu Bo
In order to reduce write locks, we do merge_state as much as much as possible. Signed-off-by: Liu Bo liubo2...@cn.fujitsu.com --- fs/btrfs/extent_io.c | 47 +++ 1 files changed, 27 insertions(+), 20 deletions(-) diff --git a/fs/btrfs/extent_io.c b

[PATCH 2/6 v3][RFC] Btrfs: add helper function to test if we can merge state

2012-07-25 Thread Liu Bo
This is a helper function to test if two states are adjacent. It is used for applying rwlock for extent state. Signed-off-by: Liu Bo liubo2...@cn.fujitsu.com --- fs/btrfs/extent_io.c | 27 +++ 1 files changed, 27 insertions(+), 0 deletions(-) diff --git a/fs/btrfs

[PATCH 5/6 v3][RFC] Btrfs: batch merge state in readpage endio

2012-07-25 Thread Liu Bo
means that we don't need to acquire the write locks unless we start to process batched merges. Signed-off-by: Liu Bo liubo2...@cn.fujitsu.com --- fs/btrfs/extent_io.c | 37 - fs/btrfs/extent_io.h |1 + 2 files changed, 33 insertions(+), 5 deletions(-) diff

[PATCH 4/6 v3][RFC] Btrfs: apply rwlock for extent state

2012-07-25 Thread Liu Bo
. Signed-off-by: Liu Bo liubo2...@cn.fujitsu.com --- fs/btrfs/extent_io.c | 320 +++--- fs/btrfs/extent_io.h |3 +- 2 files changed, 277 insertions(+), 46 deletions(-) diff --git a/fs/btrfs/extent_io.c b/fs/btrfs/extent_io.c index a84d904..842a4e5

[PATCH 6/6 v3][RFC] Btrfs: async helper for state merge

2012-07-25 Thread Liu Bo
This is the second part of parallel endios for read. Here we use an async helper thread to process batched merges, so we eventually get endio for read to avoid acquiring or holding any write locks of extent state tree. Signed-off-by: Liu Bo liubo2...@cn.fujitsu.com --- fs/btrfs/ctree.h

Re: Question about btrfs metadata structure

2012-07-27 Thread Liu Bo
On 07/25/2012 06:41 PM, Guenther Rasch wrote: Hi! I'm writing my bsc thesis about btrfs and I'm analyzing the btrfs metadata structure at the moment. I'm using fedora 17 with kernel 3.4 and btrfs-prog from your git-repository. For an overview I use btrfs-debug-tree and here are my

Re: subvolumes: default and IDs

2012-07-30 Thread Liu Bo
On 07/30/2012 03:56 PM, Florian Lindner wrote: Hey! I recently starting playing with btrfs and subvolume, but it has left me puzzled: Distribution is Archlinux, Kernel is 3.4.6. root@horus /mnt # mkfs.btrfs -L test /dev/sdb1 WARNING! - Btrfs Btrfs v0.19 IS EXPERIMENTAL WARNING! - see

Re: balance disables nodatacow

2012-07-30 Thread Liu Bo
On 07/31/2012 03:55 AM, Kyle Gates wrote: I have a 3 disk raid1 filesystem mounted with nodatacow. I have a folder in said filesystem with the 'C' NOCOW 'Z' Not_Compressed flags set for good measure. I then copy in a large file and proceed to make random modifications. Filefrag shows no

Re: balance disables nodatacow

2012-07-30 Thread Liu Bo
On 07/31/2012 12:35 PM, Kyle Gates wrote: On Mon, Jul 30, 2012 at 9:00 PM, Liu Bo liubo2...@cn.fujitsu.com wrote: On 07/31/2012 03:55 AM, Kyle Gates wrote: I have a 3 disk raid1 filesystem mounted with nodatacow. I have a folder in said filesystem with the 'C' NOCOW 'Z' Not_Compressed

<    1   2   3   4   5   6   7   8   9   10   >