Re: [PATCH 0/7] Patches to support subpagesize blocksize

2014-01-08 Thread Chandra Seetharaman
extent buffer is part of a page and I do not know how to handle this situation. Is my understanding correct ? Does anyone have any suggestion to circumvent this issue ? Thanks & regards, Chandra On Fri, 2013-12-13 at 13:39 -0500, Josef Bacik wrote: > On 12/11/2013 06:38 PM, Chandra Seetharama

Re: [PATCH 2/7] btrfs: subpagesize-blocksize: Use a global alignment for size

2013-12-16 Thread Chandra Seetharaman
On Mon, 2013-12-16 at 15:48 +0100, David Sterba wrote: > On Mon, Dec 16, 2013 at 02:33:11PM +0200, saeed bishara wrote: > > On Thu, Dec 12, 2013 at 1:38 AM, Chandra Seetharaman > > wrote: > > > In order to handle a blocksize that is smaller than the > > > PA

Re: [PATCH 1/7] btrfs: subpagesize-blocksize: Define extent_buffer_head

2013-12-16 Thread Chandra Seetharaman
On Mon, 2013-12-16 at 14:32 +0200, saeed bishara wrote: > On Thu, Dec 12, 2013 at 1:38 AM, Chandra Seetharaman > wrote: > > In order to handle multiple extent buffers per page, first we > > need to create a way to handle all the extent buffers that > > are attached to a

Re: [PATCH 0/7] Patches to support subpagesize blocksize

2013-12-13 Thread Chandra Seetharaman
On Fri, 2013-12-13 at 13:39 -0500, Josef Bacik wrote: > On 12/11/2013 06:38 PM, Chandra Seetharaman wrote: > > In btrfs, blocksize, the basic IO size of the filesystem, has been > > more than PAGE_SIZE. > > > > But, some 64 bit architures, like PPC64 and ARM64 have the d

Re: [PATCH 0/7] Patches to support subpagesize blocksize

2013-12-13 Thread Chandra Seetharaman
On Fri, 2013-12-13 at 02:17 +0100, David Sterba wrote: Hi David, > On Wed, Dec 11, 2013 at 05:38:35PM -0600, Chandra Seetharaman wrote: > > In other words, one cannot create a filesystem in some other architecture > > and use that filesystem in PPC64 or ARM64, and vice versa.,

[PATCH 5/7] btrfs: subpagesize-blocksize: handle checksum calculations properly

2013-12-11 Thread Chandra Seetharaman
With subpagesize-blocksize, the IO is done in pages but checksums are calculated in blocks. This patch makes sure the checksums are calculated, stored, and verfied from proper indexes in the page. Signed-off-by: Chandra Seetharaman --- fs/btrfs/file-item.c | 45

[PATCH 6/7] btrfs: subpagesize-blocksize: Handle relocation clusters appropriately

2013-12-11 Thread Chandra Seetharaman
For relocation clusters boundaries are at blocks, hence in the case of subpagesize-blocksize, we need to make sure the data in the page is handled correctly with the cluster boundary. This patch does that. Signed-off-by: Chandra Seetharaman --- fs/btrfs/relocation.c | 6 -- 1 file changed

[PATCH 7/7] btrfs: subpagesize-blocksize: Allow mounting filesystems where sectorsize != PAGE_SIZE

2013-12-11 Thread Chandra Seetharaman
This is the final patch of the series that allows filesystems with blocksize smaller than the PAGE_SIZE. Signed-off-by: Chandra Seetharaman --- fs/btrfs/disk-io.c | 6 -- 1 file changed, 6 deletions(-) diff --git a/fs/btrfs/disk-io.c b/fs/btrfs/disk-io.c index ca1526d..d9bd450 100644 --- a

[PATCH 0/7] Patches to support subpagesize blocksize

2013-12-11 Thread Chandra Seetharaman
. There are few wrinkles in this patchset, like some xfstests are failing, which could be due to me doing something incorrectly w.r.t how the blocksize and PAGE_SIZE are used in these patched. Would like to get some feedback, review comments. Thanks, Chandra --- Chandra Seetharaman (7): btrfs

[PATCH 3/7] btrfs: subpagesize-blocksize: Handle small extent maps properly

2013-12-11 Thread Chandra Seetharaman
This patch makes sure that the size extent maps handles are at least PAGE_CACHE_SIZE for the subpagesize-blocksize case. Signed-off-by: Chandra Seetharaman --- fs/btrfs/inode.c | 8 +++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c index

[PATCH 2/7] btrfs: subpagesize-blocksize: Use a global alignment for size

2013-12-11 Thread Chandra Seetharaman
In order to handle a blocksize that is smaller than the PAGE_SIZE, we need align all IOs to PAGE_SIZE. This patch defines a new macro btrfs_align_size() that calculates the alignment size based on the sectorsize and uses it at appropriate places. Signed-off-by: Chandra Seetharaman --- fs/btrfs

[PATCH 1/7] btrfs: subpagesize-blocksize: Define extent_buffer_head

2013-12-11 Thread Chandra Seetharaman
also adds changes that are needed to handle multiple extent buffers per page case. Signed-off-by: Chandra Seetharaman --- fs/btrfs/backref.c | 6 +- fs/btrfs/ctree.c | 2 +- fs/btrfs/ctree.h | 6 +- fs/btrfs/disk-io.c | 109 +++ fs/btrfs

[PATCH 4/7] btrfs: subpagesize-blocksize: Handle iosize properly in submit_extent_page()

2013-12-11 Thread Chandra Seetharaman
For the subpagesize-blocksize case make sure that the IO submitted through submit_extent_page() is at least of PAGE_CACHE_SIZE Signed-off-by: Chandra Seetharaman --- fs/btrfs/extent_io.c | 3 +++ 1 file changed, 3 insertions(+) diff --git a/fs/btrfs/extent_io.c b/fs/btrfs/extent_io.c index

[PATCH] Btrfs: Simplify the logic in alloc_extent_buffer() for existing extent buffer case

2013-10-07 Thread Chandra Seetharaman
x27;len' to find_extent_buffer(). Signed-Off-by: Chandra Seetharaman Reviewed-by: Zach Brown --- diff --git a/fs/btrfs/disk-io.c b/fs/btrfs/disk-io.c index 4ae17ed..daa04d2 100644 --- a/fs/btrfs/disk-io.c +++ b/fs/btrfs/disk-io.c @@ -1105,8 +1105,7 @@ struct extent_buffer *btrfs_find_tree_block(struct

Re: [PATCH] Btrfs: Simplify the logic in alloc_extent_buffer() for existing extent buffer case

2013-10-04 Thread Chandra Seetharaman
On Fri, 2013-10-04 at 14:38 -0700, Zach Brown wrote: Thanks for the review Zach. > On Fri, Oct 04, 2013 at 02:55:29PM -0500, Chandra Seetharaman wrote: > > alloc_extent_buffer() uses radix_tree_lookup() when radix_tree_insert() > > fails > > with EEXIST. That part of the co

[PATCH] Btrfs: Simplify the logic in alloc_extent_buffer() for existing extent buffer case

2013-10-04 Thread Chandra Seetharaman
patch also changes the other usage of radix_tree_lookup() in alloc_extent_buffer() with find_extent_buffer() to reduce redundancy. Signed-Off-by: Chandra Seetharaman diff --git a/fs/btrfs/extent_io.c b/fs/btrfs/extent_io.c index c09a40d..50345fb 100644 --- a/fs/btrfs/extent_io.c +++ b/fs/btrfs