Re: How does btrfs handle sudden shutdowns?

2012-11-06 Thread Hugo Mills
On Tue, Nov 06, 2012 at 12:33:08PM +, Michael Kjörling wrote: Can btrfs deal reasonably gracefully with sudden shutdowns? (I'm mainly thinking of power outages which lead to logical structure damage but not physical media damage.) In theory (i.e. by the design of the FS), you should be

Re: How does btrfs handle sudden shutdowns?

2012-11-06 Thread Liu Bo
On Tue, Nov 06, 2012 at 12:33:08PM +, Michael Kjörling wrote: Can btrfs deal reasonably gracefully with sudden shutdowns? (I'm mainly thinking of power outages which lead to logical structure damage but not physical media damage.) AFAIK, yes, because btrfs is naturally COW supported,

Re: no space left on device.

2012-11-06 Thread Kenneth Johansson
On 11/02/2012 04:54 PM, Kyle Gates wrote: So I have ended up in a state where I can't delete files with rm. the error I get is no space on device. however I'm not even close to empty. /dev/sdb1 38G 27G 9.5G 75% there is about 800k files/dirs in this filesystem extra strange is that I can in

Re: How does btrfs handle sudden shutdowns?

2012-11-06 Thread Michael Kjörling
On 6 Nov 2012 12:48 +, from h...@carfax.org.uk (Hugo Mills): There are also some caveats: while the FS should always be consistent, the latest transaction write may not have been completed, so you could potentially lose up to 30 seconds of writes to the FS from immediately before the

Re: btrfs defrag problem

2012-11-06 Thread Sander
David Sterba wrote (ao): On Thu, Nov 01, 2012 at 05:17:04AM +0800, ching wrote: when a device is mounted under a directory, files in the directory is hidden, and files in the device is available, right? when a directory is polyinstantied, files in the original directory is hidden, and

Re: How does btrfs handle sudden shutdowns?

2012-11-06 Thread Hugo Mills
On Tue, Nov 06, 2012 at 01:47:02PM +, Michael Kjörling wrote: On 6 Nov 2012 12:48 +, from h...@carfax.org.uk (Hugo Mills): There are also some caveats: while the FS should always be consistent, the latest transaction write may not have been completed, so you could potentially

Re: What's the minimum size I can shrink my FS to?

2012-11-06 Thread Jordan Windsor
On Tue, Nov 6, 2012 at 9:45 AM, David Sterba d...@jikos.cz wrote: On Sat, Nov 03, 2012 at 03:10:52PM +1030, Jordan Windsor wrote: [root@archpc ~]# btrfs fi df /home/jordan/Storage/ Data: total=580.88GB, used=490.88GB This is getting full, 84%, there is not much chance of getting rid of

[PATCH 12/26] Btrfs: avoid risk of a deadlock in btrfs_handle_error

2012-11-06 Thread Stefan Behrens
Remove the attempt to cancel a running scrub or device replace operation in btrfs_handle_error() because it adds the risk of a deadlock. The only penalty of not canceling the operation is that some I/O remains active until the procedure completes. This is basically the same thing that happens to

[PATCH 21/26] Btrfs: introduce GET_READ_MIRRORS functionality for btrfs_map_block()

2012-11-06 Thread Stefan Behrens
Before this commit, btrfs_map_block() was called with REQ_WRITE in order to retrieve the list of mirrors for a disk block. This needs to be changed for the device replace procedure since it makes a difference whether you are asking for read mirrors or for locations to write to. GET_READ_MIRRORS is

[PATCH 17/26] Btrfs: disallow some operations on the device replace target device

2012-11-06 Thread Stefan Behrens
This patch adds some code to disallow operations on the device that is used as the target for the device replace operation. Signed-off-by: Stefan Behrens sbehr...@giantdisaster.de --- fs/btrfs/ctree.h | 2 +- fs/btrfs/extent-tree.c | 3 ++- fs/btrfs/ioctl.c | 8 +++-

[PATCH 11/26] Btrfs: pass fs_info instead of root

2012-11-06 Thread Stefan Behrens
A small number of functions that are used in a device replace procedure when the operation is resumed at mount time are unable to pass the same root pointer that would be used in the regular (ioctl) context. And since the root pointer is not required, only the fs_info is, the root pointer argument

[PATCH 10/26] Btrfs: add btrfs_scratch_superblock() function

2012-11-06 Thread Stefan Behrens
This new function is used by the device replace procedure in a later patch. Signed-off-by: Stefan Behrens sbehr...@giantdisaster.de --- fs/btrfs/volumes.c | 18 ++ fs/btrfs/volumes.h | 1 + 2 files changed, 19 insertions(+) diff --git a/fs/btrfs/volumes.c b/fs/btrfs/volumes.c

[PATCH 06/26] Btrfs: cleanup scrub bio and worker wait code

2012-11-06 Thread Stefan Behrens
Just move some code into functions to make everything more readable. Signed-off-by: Stefan Behrens sbehr...@giantdisaster.de --- fs/btrfs/scrub.c | 106 +-- 1 file changed, 71 insertions(+), 35 deletions(-) diff --git a/fs/btrfs/scrub.c

[PATCH 14/26] Btrfs: introduce a btrfs_dev_replace_item type

2012-11-06 Thread Stefan Behrens
Signed-off-by: Stefan Behrens sbehr...@giantdisaster.de --- fs/btrfs/ctree.h | 66 +++ fs/btrfs/print-tree.c | 3 +++ 2 files changed, 69 insertions(+) diff --git a/fs/btrfs/ctree.h b/fs/btrfs/ctree.h index 57961f1..4bffc63 100644 ---

[PATCH 24/26] Btrfs: increase BTRFS_MAX_MIRRORS by one for dev replace

2012-11-06 Thread Stefan Behrens
This change of the define is effective in all modes, it is required and used only in the case when a device replace procedure is running. The reason is that during an active device replace procedure, the target device of the copy operation is a mirror for the filesystem data as well that can be

[PATCH 09/26] Btrfs: pass fs_info to btrfs_map_block() instead of mapping_tree

2012-11-06 Thread Stefan Behrens
This is required for the device replace procedure in a later step. Two calling functions also had to be changed to have the fs_info pointer: repair_io_failure() and scrub_setup_recheck_block(). Signed-off-by: Stefan Behrens sbehr...@giantdisaster.de --- fs/btrfs/check-integrity.c | 2 +-

[PATCH 00/26] Btrfs: Add device replace code

2012-11-06 Thread Stefan Behrens
This patch series adds support for replacing disks at runtime. It replaces the following steps in case a disk was lost: mount ... -o degraded btrfs device add new_disk btrfs device delete missing Or in case a disk just needs to be replaced because the error rate is increasing:

[PATCH 01/26] Btrfs: rename the scrub context structure

2012-11-06 Thread Stefan Behrens
The device replace procedure makes use of the scrub code. The scrub code is the most efficient code to read the allocated data of a disk, i.e. it reads sequentially in order to avoid disk head movements, it skips unallocated blocks, it uses read ahead mechanisms, and it contains all the code to

[PATCH 07/26] Btrfs: add two more find_device() methods

2012-11-06 Thread Stefan Behrens
The new function btrfs_find_device_missing_or_by_path() will be used for the device replace procedure. This function itself calls the second new function btrfs_find_device_by_path(). Unfortunately, it is not possible to currently make the rest of the code use these functions as well, since all

[PATCH 18/26] Btrfs: handle errors from btrfs_map_bio() everywhere

2012-11-06 Thread Stefan Behrens
With the addition of the device replace procedure, it is possible for btrfs_map_bio(READ) to report an error. This happens when the specific mirror is requested which is located on the target disk, and the copy operation has not yet copied this block. Hence the block cannot be read and this error

[PATCH 13/26] Btrfs: enhance btrfs structures for device replace support

2012-11-06 Thread Stefan Behrens
Signed-off-by: Stefan Behrens sbehr...@giantdisaster.de --- fs/btrfs/ctree.h | 39 +++ fs/btrfs/disk-io.c | 5 + 2 files changed, 44 insertions(+) diff --git a/fs/btrfs/ctree.h b/fs/btrfs/ctree.h index ef83538..57961f1 100644 --- a/fs/btrfs/ctree.h +++

[PATCH 20/26] Btrfs: change core code of btrfs to support the device replace operations

2012-11-06 Thread Stefan Behrens
This commit contains all the essential changes to the core code of Btrfs for support of the device replace procedure. Signed-off-by: Stefan Behrens sbehr...@giantdisaster.de --- fs/btrfs/Makefile | 2 +- fs/btrfs/ctree.h | 2 + fs/btrfs/disk-io.c | 24 +- fs/btrfs/reada.c

[PATCH 26/26] Btrfs: add support for device replace ioctls

2012-11-06 Thread Stefan Behrens
This is the commit that allows to start the device replace procedure. An ioctl() interface is added that supports starting and canceling the device replace procedure, and to retrieve the status and progress. Signed-off-by: Stefan Behrens sbehr...@giantdisaster.de --- fs/btrfs/ioctl.c | 48

[PATCH 08/26] Btrfs: Pass fs_info to btrfs_num_copies() instead of mapping_tree

2012-11-06 Thread Stefan Behrens
This is required for the device replace procedure in a later step. Signed-off-by: Stefan Behrens sbehr...@giantdisaster.de --- fs/btrfs/check-integrity.c | 12 ++-- fs/btrfs/disk-io.c | 2 +- fs/btrfs/extent_io.c | 11 +-- fs/btrfs/volumes.c | 3 ++-

[PATCH 16/26] Btrfs: disallow mutually exclusiv admin operations from user mode

2012-11-06 Thread Stefan Behrens
Btrfs admin operations that are manually started from user mode and that cannot be executed at the same time return -EINPROGRESS. A common way to enter and leave this locked section is introduced since it used to be specific to the balance operation. Signed-off-by: Stefan Behrens

[PATCH 02/26] Btrfs: remove the block device pointer from the scrub context struct

2012-11-06 Thread Stefan Behrens
The block device is removed from the scrub context state structure. The scrub code as it is used for the device replace procedure reads the source data from whereever it is optimal. The source device might even be gone (disconnected, for instance due to a hardware failure). Or the drive can be so

[PATCH 03/26] Btrfs: make the scrub page array dynamically allocated

2012-11-06 Thread Stefan Behrens
With the modified design (in order to support the devive replace procedure) it is necessary to alloc the page array dynamically. The reason is that pages are reused. At first a page is used for the bio to read the data from the filesystem, then the same page is reused for the bio that writes the

[PATCH 15/26] Btrfs: add a new source file with device replace code

2012-11-06 Thread Stefan Behrens
This adds a new file to the sources together with the header file and the changes to ioctl.h that are required by the new C source file. Signed-off-by: Stefan Behrens sbehr...@giantdisaster.de --- fs/btrfs/dev-replace.c | 843 +

[PATCH 25/26] Btrfs: allow repair code to include target disk when searching mirrors

2012-11-06 Thread Stefan Behrens
Make the target disk of a running device replace operation available for reading. This is only used as a last ressort for the defect repair procedure. And it is dependent on the location of the data block to read, because during an ongoing device replace operation, the target drive is only

[PATCH 22/26] Btrfs: changes to live filesystem are also written to replacement disk

2012-11-06 Thread Stefan Behrens
During a running dev replace operation, all write requests to the live filesystem are duplicated to also write to the target drive. Therefore btrfs_map_block() is changed to duplicate stripes that are written to the source disk of a device replace procedure to be written to the target disk as

[PATCH 19/26] Btrfs: add code to scrub to copy read data to another disk

2012-11-06 Thread Stefan Behrens
The device replace procedure makes use of the scrub code. The scrub code is the most efficient code to read the allocated data of a disk, i.e. it reads sequentially in order to avoid disk head movements, it skips unallocated blocks, it uses read ahead mechanisms, and it contains all the code to

[PATCH 05/26] Btrfs: in scrub repair code, simplify alloc error handling

2012-11-06 Thread Stefan Behrens
In the scrub repair code, the code is changed to handle memory allocation errors a little bit smarter. The change is to handle it just like a read error. This simplifies the code and removes a couple of lines of code, since the code to handle read errors is there anyway. Signed-off-by: Stefan

[PATCH 23/26] Btrfs: optionally avoid reads from device replace source drive

2012-11-06 Thread Stefan Behrens
It is desirable to be able to configure the device replace procedure to avoid reading the source drive (the one to be copied) whenever possible. This is useful when the number of read errors on this disk is high, because it would delay the copy procedure alot. Therefore there is an option to avoid

[PATCH] Btrfs-progs: add support for device replace procedure

2012-11-06 Thread Stefan Behrens
This is the user mode part of the device replace patch series. The command group btrfs replace is added with three commands: - btrfs replace start mount_point srcdev|srcdevid targetdev [-Bfr] - btrfs replace status mount_point [-1] - btrfs replace cancel mount_point Signed-off-by: Stefan Behrens

Re: [PATCH 00/26] Btrfs: Add device replace code

2012-11-06 Thread Stefan Behrens
On 11/06/2012 19:17, Bart Noordervliet wrote: Great new feature Stefan, thanks a lot! Going to give it a spin right away. While compiling I got this (probably superfluous) error that you might want to prevent: fs/btrfs/dev-replace.c: In function ‘btrfs_dev_replace_start’:

Re: [PATCH 00/26] Btrfs: Add device replace code

2012-11-06 Thread Hugo Mills
On Tue, Nov 06, 2012 at 07:57:47PM +0100, Stefan Behrens wrote: On 11/06/2012 19:17, Bart Noordervliet wrote: Great new feature Stefan, thanks a lot! Going to give it a spin right away. While compiling I got this (probably superfluous) error that you might want to prevent:

[ablock84-btrfs:btrfs-far 19/20] fs/far/far-path.c:42:2: error: implicit declaration of function 'IS_ERR'

2012-11-06 Thread kbuild test robot
tree: git://github.com/ablock84/linux-btrfs.git btrfs-far head: f9a5bb450a8cc7aa5fd4f11d0306b3f48cf2771d commit: 29aefeaaf482ab396ff53c2bbf5c35ce237b91c0 [19/20] fs: add libfarstream support config: make ARCH=s390 allmodconfig All error/warnings: In file included from

[PATCH v2 2/2] Btrfs-progs: bugfix for subvolume parent determination in btrfs send

2012-11-06 Thread Jan Schmidt
We missed to add the default subvolume, because it has no ROOT_BACKREF_ITEM. This made get_parent always fail for direct decendants of the default subvolume, resulting in lots of full streams where incremental streams were requested. Signed-off-by: Jan Schmidt list.bt...@jan-o-sch.net

[PATCH v2 1/2] Btrfs-progs: correcting misnamed parameter options for btrfs send

2012-11-06 Thread Jan Schmidt
Unfortunately, the command line options for btrfs send were misnamed. The -i option should not be used to give clone sources, we'll be using -c instead. Compatibily note: -i option was broken anyway, which makes it less critical renaming it. For potential users of the old option style, we emit a

[PATCH v2 0/2] Btrfs-progs: urgent fixes for btrfs send

2012-11-06 Thread Jan Schmidt
After sending v1 some days ago, some onlist and offlist discussion has brought us to the following conclusions: - we should fix it as soon as possible - we should stick to the -p option (parent) - we should rename the -i option (because it actually means clone

[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 kbuild test robot
tree: git://github.com/ablock84/linux-btrfs.git btrfs-far head: f9a5bb450a8cc7aa5fd4f11d0306b3f48cf2771d commit: f9a5bb450a8cc7aa5fd4f11d0306b3f48cf2771d [20/20] Btrfs: use libfarstream for btrfs send sparse warnings: + fs/btrfs/send.c:1683:51: sparse: incorrect type in argument 5

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
On Tue, Nov 6, 2012 at 9:51 PM, kbuild test robot fengguang...@intel.com wrote: tree: git://github.com/ablock84/linux-btrfs.git btrfs-far head: f9a5bb450a8cc7aa5fd4f11d0306b3f48cf2771d commit: f9a5bb450a8cc7aa5fd4f11d0306b3f48cf2771d [20/20] Btrfs: use libfarstream for btrfs send

Re: [RFC v4+ hot_track 02/19] vfs: initialize and free data structures

2012-11-06 Thread David Sterba
On Mon, Oct 29, 2012 at 12:30:44PM +0800, zwu.ker...@gmail.com wrote: +/* Frees the entire hot_range_tree. */ +static void hot_inode_item_free(struct kref *kref) +{ + struct hot_comm_item *comm_item = container_of(kref, + struct hot_comm_item, refs); + struct

Re: [RFC v4+ hot_track 03/19] vfs: add I/O frequency update function

2012-11-06 Thread David Sterba
On Mon, Oct 29, 2012 at 12:30:45PM +0800, zwu.ker...@gmail.com wrote: --- a/fs/hot_tracking.c +++ b/fs/hot_tracking.c +struct hot_inode_item +*hot_inode_item_find(struct hot_info *root, u64 ino) +{ + struct hot_inode_item *he; + int ret; + +again: + spin_lock(root-lock); +

Re: [RFC v4+ hot_track 03/19] vfs: add I/O frequency update function

2012-11-06 Thread Darrick J. Wong
On Mon, Oct 29, 2012 at 12:30:45PM +0800, zwu.ker...@gmail.com wrote: From: Zhi Yong Wu wu...@linux.vnet.ibm.com Add some util helpers to update access frequencies for one file or its range. Signed-off-by: Zhi Yong Wu wu...@linux.vnet.ibm.com --- fs/hot_tracking.c| 179

Re: [PATCH 00/26] Btrfs: Add device replace code

2012-11-06 Thread Zach Brown
Yes, this happens on 32 bit builds, not on 64 bit builds. If you look at the source code, the compiler is obviously wrong (or I am blind). ret = btrfs_dev_replace_find_srcdev(root, args-start.srcdevid, args-start.srcdev_name,

Re: [RFC v4+ hot_track 05/19] vfs: add hooks to enable hot tracking

2012-11-06 Thread David Sterba
On Mon, Oct 29, 2012 at 12:30:47PM +0800, zwu.ker...@gmail.com wrote: --- a/mm/readahead.c +++ b/mm/readahead.c @@ -19,6 +19,7 @@ #include linux/pagemap.h #include linux/syscalls.h #include linux/file.h +#include linux/hot_tracking.h /* * Initialise a struct file's readahead

Re: [RFC v4+ hot_track 10/19] vfs: introduce hot func register framework

2012-11-06 Thread David Sterba
On Mon, Oct 29, 2012 at 12:30:52PM +0800, zwu.ker...@gmail.com wrote: +static struct hot_func_type *hot_func_get(const char *name) +{ + struct hot_func_type *f, *h = hot_func_def; + + spin_lock(hot_func_list_lock); + list_for_each_entry(f, hot_func_list, list) { + if

Re: [RFC v4+ hot_track 10/19] vfs: introduce hot func register framework

2012-11-06 Thread Darrick J. Wong
On Mon, Oct 29, 2012 at 12:30:52PM +0800, zwu.ker...@gmail.com wrote: From: Zhi Yong Wu wu...@linux.vnet.ibm.com Introduce one framwork to enable that specific FS can register its own hot tracking functions. Signed-off-by: Zhi Yong Wu wu...@linux.vnet.ibm.com --- fs/hot_tracking.c

Re: [RFC v4+ hot_track 12/19] vfs: add one ioctl interface

2012-11-06 Thread David Sterba
On Mon, Oct 29, 2012 at 12:30:54PM +0800, zwu.ker...@gmail.com wrote: +static int ioctl_heat_info(struct file *file, void __user *argp) +{ + struct inode *inode = file-f_dentry-d_inode; + struct hot_heat_info *heat_info; + struct hot_inode_item *he; + int ret = 0; + +

Re: [RFC v4+ hot_track 14/19] vfs: add debugfs support

2012-11-06 Thread David Sterba
On Mon, Oct 29, 2012 at 12:30:56PM +0800, zwu.ker...@gmail.com wrote: +static int hot_range_seq_show(struct seq_file *seq, void *v) +{ + struct hot_range_item *hr = v; + struct hot_inode_item *he = hr-hot_inode; + struct hot_freq_data *freq_data = hr-hot_range.hot_freq_data; + +

Re: [RFC v4+ hot_track 16/19] btrfs: add hot tracking support

2012-11-06 Thread David Sterba
On Mon, Oct 29, 2012 at 12:30:58PM +0800, zwu.ker...@gmail.com wrote: From: Zhi Yong Wu wu...@linux.vnet.ibm.com Introduce one new mount option '-o hot_track', and add its parsing support. Its usage looks like: mount -o hot_track mount -o nouser,hot_track mount -o

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 Fengguang Wu
On Tue, Nov 06, 2012 at 09:57:47PM +0100, Alexander Block wrote: On Tue, Nov 6, 2012 at 9:51 PM, kbuild test robot fengguang...@intel.com wrote: tree: git://github.com/ablock84/linux-btrfs.git btrfs-far head: f9a5bb450a8cc7aa5fd4f11d0306b3f48cf2771d commit:

Re: [PATCH 19/26] Btrfs: add code to scrub to copy read data to another disk

2012-11-06 Thread Tsutomu Itoh
(2012/11/07 1:38), Stefan Behrens wrote: The device replace procedure makes use of the scrub code. The scrub code is the most efficient code to read the allocated data of a disk, i.e. it reads sequentially in order to avoid disk head movements, it skips unallocated blocks, it uses read ahead

Re: [PATCH 00/26] Btrfs: Add device replace code

2012-11-06 Thread Tsutomu Itoh
(2012/11/07 1:38), Stefan Behrens wrote: This patch series adds support for replacing disks at runtime. It replaces the following steps in case a disk was lost: mount ... -o degraded btrfs device add new_disk btrfs device delete missing Or in case a disk just needs to be

Re: [RFC v4+ hot_track 02/19] vfs: initialize and free data structures

2012-11-06 Thread Zhi Yong Wu
On Wed, Nov 7, 2012 at 6:24 AM, David Sterba d...@jikos.cz wrote: On Mon, Oct 29, 2012 at 12:30:44PM +0800, zwu.ker...@gmail.com wrote: +/* Frees the entire hot_range_tree. */ +static void hot_inode_item_free(struct kref *kref) +{ + struct hot_comm_item *comm_item = container_of(kref, +

Re: [RFC v4+ hot_track 03/19] vfs: add I/O frequency update function

2012-11-06 Thread Zhi Yong Wu
On Wed, Nov 7, 2012 at 6:37 AM, David Sterba d...@jikos.cz wrote: On Mon, Oct 29, 2012 at 12:30:45PM +0800, zwu.ker...@gmail.com wrote: --- a/fs/hot_tracking.c +++ b/fs/hot_tracking.c +struct hot_inode_item +*hot_inode_item_find(struct hot_info *root, u64 ino) +{ + struct hot_inode_item

Re: [RFC v4+ hot_track 05/19] vfs: add hooks to enable hot tracking

2012-11-06 Thread Zhi Yong Wu
On Wed, Nov 7, 2012 at 6:51 AM, David Sterba d...@jikos.cz wrote: On Mon, Oct 29, 2012 at 12:30:47PM +0800, zwu.ker...@gmail.com wrote: --- a/mm/readahead.c +++ b/mm/readahead.c @@ -19,6 +19,7 @@ #include linux/pagemap.h #include linux/syscalls.h #include linux/file.h +#include

Re: [RFC v4+ hot_track 10/19] vfs: introduce hot func register framework

2012-11-06 Thread Zhi Yong Wu
On Wed, Nov 7, 2012 at 7:14 AM, David Sterba d...@jikos.cz wrote: On Mon, Oct 29, 2012 at 12:30:52PM +0800, zwu.ker...@gmail.com wrote: +static struct hot_func_type *hot_func_get(const char *name) +{ + struct hot_func_type *f, *h = hot_func_def; + + spin_lock(hot_func_list_lock); +

Re: [RFC v4+ hot_track 12/19] vfs: add one ioctl interface

2012-11-06 Thread Zhi Yong Wu
On Wed, Nov 7, 2012 at 7:30 AM, David Sterba d...@jikos.cz wrote: On Mon, Oct 29, 2012 at 12:30:54PM +0800, zwu.ker...@gmail.com wrote: +static int ioctl_heat_info(struct file *file, void __user *argp) +{ + struct inode *inode = file-f_dentry-d_inode; + struct hot_heat_info

Re: [RFC v4+ hot_track 14/19] vfs: add debugfs support

2012-11-06 Thread Zhi Yong Wu
On Wed, Nov 7, 2012 at 7:45 AM, David Sterba d...@jikos.cz wrote: On Mon, Oct 29, 2012 at 12:30:56PM +0800, zwu.ker...@gmail.com wrote: +static int hot_range_seq_show(struct seq_file *seq, void *v) +{ + struct hot_range_item *hr = v; + struct hot_inode_item *he = hr-hot_inode; +