Hi All,
I've reported a bug with Ubuntu here:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/1349711
The machine in question has one BTRFS volume which is 87% full and
lives on an Logical Volume Manager (LVM) block device on top of one
Amazon Elastic Block Store (EBS) device.
We have other
Someone on IRC suggested that I clear the free cache:
> sudo mount -o remount,clear_cache /path/to/dev /path/to/mount
> sudo mount -o remount,space_cache /path/to/dev /path/to/mount
The former command printed `btrfs: disk space caching is enabled` and
the latter repeated it, making me think that
We could not use clean_io_failure in the direct IO path because it got the
filesystem information from the page structure, but the page in the direct
IO bio didn't have the filesystem information in its structure. So we need
modify it and pass all the information it need by parameters.
Signed-off-
This patchset implement the data repair function for the direct read, it
is implemented like buffered read:
1.When we find the data is not right, we try to read the data from the other
mirror.
2.When the io on the mirror ends, we will insert the endio work into the
system workqueue, not btrfs o
Signed-off-by: Miao Xie
---
Changelog v1-v2:
- None
---
fs/btrfs/inode.c | 102 +--
1 file changed, 47 insertions(+), 55 deletions(-)
diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c
index fd88126..2e261b1 100644
--- a/fs/btrfs/inode.c
+++ b/fs
The original code of repair_io_failure was just used for buffered read,
because it got some filesystem data from page structure, it is safe for
the page in the page cache. But when we do a direct read, the pages in bio
are not in the page cache, that is there is no filesystem data in the page
struc
The caller of btrfs_submit_direct_hook() will put the original dio bio
when btrfs_submit_direct_hook() return a error number, so we needn't
put the original bio in btrfs_submit_direct_hook().
Signed-off-by: Miao Xie
---
Changelog v1-v2:
- None
---
fs/btrfs/inode.c | 5 ++---
1 file changed, 2 in
This patch implement data repair function when direct read fails.
The detail of the implementation is:
- When we find the data is not right, we try to read the data from the other
mirror.
- After we get right data, we write it back to the corrupted mirror.
- And if the data on the new mirror is
We need real mirror number for RAID0/5/6 when reading data, or if read error
happens, we would pass 0 as the number of the mirror on which the io error
happens. It is wrong and would cause the filesystem read the data from the
corrupted mirror again.
Signed-off-by: Miao Xie
---
Changelog v1-v2:
-
The current code would load checksum data for several times when we split
a whole direct read io because of the limit of the raid stripe, it would
make us search the csum tree for several times. In fact, it just wasted time,
and made the contention of the csum tree root be more serious. This patch
We forgot to free failure record and bio after submitting re-read bio failed,
fix it.
Signed-off-by: Miao Xie
---
Changelog v1-v2:
- None
---
fs/btrfs/extent_io.c | 5 +
1 file changed, 5 insertions(+)
diff --git a/fs/btrfs/extent_io.c b/fs/btrfs/extent_io.c
index 881fc49..fb00736 100644
--
After the data is written successfully, we should cleanup the read failure
record
in that range because
- If we set data COW for the file, the range that the failure record pointed to
is
mapped to a new place, so it is invalid.
- If we set no data COW for the file, and if there is no error duri
Signed-off-by: Miao Xie
---
Changelog v1-v2:
- None
---
fs/btrfs/extent_io.c | 26 ++
1 file changed, 10 insertions(+), 16 deletions(-)
diff --git a/fs/btrfs/extent_io.c b/fs/btrfs/extent_io.c
index fb00736..f71b34f 100644
--- a/fs/btrfs/extent_io.c
+++ b/fs/btrfs/extent_
Direct IO splits the original bio to several sub-bios because of the limit of
raid stripe, and the filesystem will wait for all sub-bios and then run final
end io process.
But it was very hard to implement the data repair when dio read failure happens,
because at the final end io function, we didn
The data repair function of direct read will be implemented later, and some code
in bio_readpage_error will be reused, so split bio_readpage_error into
several functions which will be used in direct read repair later.
Signed-off-by: Miao Xie
---
Changelog v1-v2:
- None
---
fs/btrfs/extent_io.c |
On Mon, Jul 28, 2014 at 01:11:19PM +0200, Torbjørn wrote:
> On 28. juli 2014 12:00, Liu Bo wrote:
>
> >This seems to be incomplete(Looks like dmesg has reached its buffer size
> >limit),
> >does /var/log/message have the whole stack info?
> >
> >thanks,
> >-liubo
> Hi,
>
> Complete log was over
Commit 49c6f736f34f901117c20960ebd7d5e60f12fcac(
btrfs: dev replace should replace the sysfs entry) added the missing sysfs entry
in the process of device replace, but didn't take missing devices into account,
so now we have
BUG: unable to handle kernel NULL pointer dereference at 0088
This patchset continues with the work posted earlier at
https://www.mail-archive.com/linux-btrfs@vger.kernel.org/msg35547.html.
Changes from V1:
1. Remove usage of bio_vec->bv_{len,offset} in end_bio_extent_readpage()
and end_bio_extent_writepage().
Changes from V2:
1. Get __extent_writepage()
For the subpagesize-blocksize scenario, This patch adds the ability to write a
single extent buffer to the disk.
Signed-off-by: Chandan Rajendra
---
fs/btrfs/disk-io.c | 20 ++--
fs/btrfs/extent_io.c | 279 ++-
2 files changed, 244 insertions(+)
In subpagesize-blocksize scenario it is not sufficient to search using the
first byte of the page to make sure that there are no ordered extents
present across the page. Fix this.
Signed-off-by: Chandan Rajendra
---
fs/btrfs/extent_io.c | 3 ++-
fs/btrfs/inode.c | 6 +++---
2 files changed,
Currently, the code reserves/releases extents in multiples of PAGE_CACHE_SIZE
units. Fix this.
Signed-off-by: Chandan Rajendra
---
fs/btrfs/file.c | 32
1 file changed, 20 insertions(+), 12 deletions(-)
diff --git a/fs/btrfs/file.c b/fs/btrfs/file.c
index 006af2
Checksums are applicable to sectorsize units. The current code uses
bio->bv_len units to compute and look up checksums. This works on machines
where sectorsize == PAGE_CACHE_SIZE. This patch makes the checksum
computation and look up code to work with sectorsize units.
Signed-off-by: Chandan Rajen
In the case of subpagesize-blocksize, this patch makes it possible to read
only a single metadata block from the disk instead of all the metadata blocks
that map into a page.
Signed-off-by: Chandan Rajendra
---
fs/btrfs/disk-io.c | 45 -
fs/btrfs/disk-io.h | 3 ++
fs/btrfs
In subpagesize-blocksize scenario, if i_size occurs in a block which is not
the last block in the page, then the space to be reserved should be calculated
appropriately.
Signed-off-by: Chandan Rajendra
---
fs/btrfs/inode.c | 33 ++---
1 file changed, 22 insertions(+),
The code now loops across 'ordered extents' instead of 'extent maps' to figure
out the dirty blocks of the page to be submitted for a write operation.
Signed-off-by: Chandan Rajendra
---
fs/btrfs/extent_io.c | 68 +---
1 file changed, 27 insertions
While at it, this commit changes btrfs_truncate_page() to truncate sectorsized
blocks instead of pages. Hence the function has been renamed to
btrfs_truncate_block().
Signed-off-by: Chandan Rajendra
---
fs/btrfs/ctree.h | 2 +-
fs/btrfs/file.c | 35 ++-
fs/btrfs
From: Chandra Seetharaman
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 page.
This patch creates a new data structure 'struct extent_buffer_head', and moves
fields that are common to all extent buffers i
Based on original patch from Aneesh Kumar K.V
bio_vec->{bv_offset, bv_len} cannot be relied upon by the end bio functions
to track the file offset range operated on by the bio. Hence this patch adds
two new members to 'struct btrfs_io_bio' to track the file offset range.
This patch also brings b
From: Chandra Seetharaman
This patch allows mounting filesystems with blocksize smaller than the
PAGE_SIZE.
Signed-off-by: Chandra Seetharaman
Signed-off-by: Chandan Rajendra
---
fs/btrfs/disk-io.c | 6 --
1 file changed, 6 deletions(-)
diff --git a/fs/btrfs/disk-io.c b/fs/btrfs/disk-io.
This commit brings back functions that set/clear EXTENT_WRITEBACK bits. These
are required to reliably clear PG_writeback page flag.
Signed-off-by: Chandan Rajendra
---
fs/btrfs/extent_io.c | 134 +--
fs/btrfs/extent_io.h | 2 +-
fs/btrfs/inode.c
On Fri, Jul 25, 2014 at 09:49:03AM +0800, Qu Wenruo wrote:
> When page aligned start and len passed to extent_fiemap(), the result is
> good, but when start and len is not aligned, e.g. start = 1 and len =
> 4095 is passed to extent_fiemap(), it returns no extent.
>
> The problem is that start and
On Thu, Jul 10, 2014 at 11:05:12AM +0800, Qu Wenruo wrote:
> When editing cmds-filesystem.c, I found cmd_filesystem_df() uses 7
> spaces as indent instead of 1 tab (or 8 spaces). which makes indent
> quite embarrassing.
> Such problem is especillay hard to detect when reviewing patches,
> since the
On Thu, Jul 17, 2014 at 10:40:38AM +0800, Gui Hecheng wrote:
> The raw number 36 for the uuid string length is somewhat confusing,
> use a macro to define replace it.
There's the BTRFS_UUID_UNPARSED_SIZE macro, please use it instead to
avoid duplicate definitions.
--
To unsubscribe from this list:
On Tue, Jul 29, 2014 at 02:16:14PM +0200, David Sterba wrote:
> On Thu, Jul 17, 2014 at 10:40:38AM +0800, Gui Hecheng wrote:
> > The raw number 36 for the uuid string length is somewhat confusing,
> > use a macro to define replace it.
>
> There's the BTRFS_UUID_UNPARSED_SIZE macro, please use it i
On Fri, Jul 25, 2014 at 09:29:05AM +0800, Qu Wenruo wrote:
>
> Original Message
> Subject: Re: [PATCH] btrfs: Return right extent when fiemap gives unaligned
> offset and len.
> From: David Sterba
> To: Qu Wenruo
> Date: 2014年07月24日 20:17
> >On Fri, Jul 18, 2014 at 09:55:43AM +
On Thu, Jul 17, 2014 at 05:28:24PM +0800, Anand Jain wrote:
> xfstest btrfs/023 which does the following tests
>
> create_group_profile "raid0"
> check_group_profile "RAID0"
>
> create_group_profile "raid1"
> check_group_profile "RAID1"
>
> create_group_profile "raid10"
> check_group_profile "RA
On Fri, Jul 25, 2014 at 03:16:58PM +0900, Satoru Takeuchi wrote:
> From: Satoru Takeuchi
>
> There are many duplicated codes to check if the given string is
> correct subvolume name. Introduce test_issubvolname() for this
> purpose for simplicity.
Please move it to utils.c
--
To unsubscribe from
On Sun, Jul 27, 2014 at 12:49:55AM +0800, Wang Shilong wrote:
> cmds-restore.c:120:4: warning: format %lu expects argument of type
> long unsigned int, but argument 3 has type size_t [-Wformat=]
> fprintf(stderr, "bad compress length %lu\n", in_len);
> --- a/cmds-restore.c
> +++ b/cmds-restore
Hi David,
> On Sun, Jul 27, 2014 at 12:49:55AM +0800, Wang Shilong wrote:
>> cmds-restore.c:120:4: warning: format %lu expects argument of type
>> long unsigned int, but argument 3 has type size_t [-Wformat=]
>>fprintf(stderr, "bad compress length %lu\n", in_len);
>
>> --- a/cmds-restore.c
>>
On Wed, Jul 23, 2014 at 01:47:35PM +0800, Qu Wenruo wrote:
> --- a/utils.c
> +++ b/utils.c
> @@ -2390,6 +2390,9 @@ int lookup_ino_rootid(int fd, u64 *rootid)
> return 0;
> }
>
> +/* return 0 if a btrfs mount point if found
> + * return 1 if a mount point is found but not btrfs
> + * return
On Tue, Jul 29, 2014 at 09:56:46PM +0800, Wang Shilong wrote:
> Hi David,
>
> > On Sun, Jul 27, 2014 at 12:49:55AM +0800, Wang Shilong wrote:
> >> cmds-restore.c:120:4: warning: format %lu expects argument of type
> >> long unsigned int, but argument 3 has type size_t [-Wformat=]
> >>fprintf(s
On 07/29/2014 12:18 PM, Liu Bo wrote:
On Mon, Jul 28, 2014 at 01:11:19PM +0200, Torbjørn wrote:
On 28. juli 2014 12:00, Liu Bo wrote:
This seems to be incomplete(Looks like dmesg has reached its buffer size limit),
does /var/log/message have the whole stack info?
thanks,
-liubo
Hi,
Complete
On Mon, Jul 28, 2014 at 2:36 PM, Nick Krause wrote:
> On Mon, Jul 28, 2014 at 12:19 PM, Austin S Hemmelgarn
> wrote:
>> On 2014-07-28 11:57, Nick Krause wrote:
>>> On Mon, Jul 28, 2014 at 11:13 AM, Nick Krause
>>> wrote:
On Mon, Jul 28, 2014 at 6:10 AM, Austin S Hemmelgarn
wrote:
On 2014-07-29 13:08, Nick Krause wrote:
> On Mon, Jul 28, 2014 at 2:36 PM, Nick Krause wrote:
>> On Mon, Jul 28, 2014 at 12:19 PM, Austin S Hemmelgarn
>> wrote:
>>> On 2014-07-28 11:57, Nick Krause wrote:
On Mon, Jul 28, 2014 at 11:13 AM, Nick Krause
wrote:
> On Mon, Jul 28, 2014 a
On Tue, Jul 29, 2014 at 1:14 PM, Austin S Hemmelgarn
wrote:
> On 2014-07-29 13:08, Nick Krause wrote:
>> On Mon, Jul 28, 2014 at 2:36 PM, Nick Krause wrote:
>>> On Mon, Jul 28, 2014 at 12:19 PM, Austin S Hemmelgarn
>>> wrote:
On 2014-07-28 11:57, Nick Krause wrote:
> On Mon, Jul 28, 201
> Date: Tue, 29 Jul 2014 11:18:17 +0900
> From: takeuchi_sat...@jp.fujitsu.com
> To: kylega...@hotmail.com; linux-btrfs@vger.kernel.org
> Subject: Re: [PATCH 2/2] btrfs-progs: Unify the messy error message formats
>
> Hi Kyle,
>
> (2014/07/28 22:24), Kyle Ga
On Tue, 2014-07-29 at 14:19 +0200, David Sterba wrote:
> On Tue, Jul 29, 2014 at 02:16:14PM +0200, David Sterba wrote:
> > On Thu, Jul 17, 2014 at 10:40:38AM +0800, Gui Hecheng wrote:
> > > The raw number 36 for the uuid string length is somewhat confusing,
> > > use a macro to define replace it.
>
Hi David,
(2014/07/29 22:32), David Sterba wrote:
On Fri, Jul 25, 2014 at 03:16:58PM +0900, Satoru Takeuchi wrote:
From: Satoru Takeuchi
There are many duplicated codes to check if the given string is
correct subvolume name. Introduce test_issubvolname() for this
purpose for simplicity.
Ple
target branch to integ-20140729.
---
cmds-subvolume.c | 9 +++--
utils.c | 12
utils.h | 1 +
3 files changed, 16 insertions(+), 6 deletions(-)
diff --git a/cmds-subvolume.c b/cmds-subvolume.c
index 8bdc447..c075fb2 100644
--- a/cmds-subvolume.c
+++ b/cmds
Hey Guys ,
I am new to reading and writing kernel code.I got interested in
writing code for btrfs as it seems to
need more work then other file systems and this seems other then
drivers, a good use of time on my part.
I interested in helping improving the compression of btrfs by using a
set of
On 26/07/2014 15:05, Goffredo Baroncelli wrote:
On 07/25/2014 02:33 PM, Anand Jain wrote:
This would dump the following info:
fs_address dev_address dev_root_addr root_fsid
fsid name uuid (seed_fsid@seed_addr sprout_fsid@sprout_addr)
(fs_num_devices fs_open_devices fs_rw_devices fs_m
On Tue, Jul 29, 2014 at 05:07:31PM +0200, Torbjørn wrote:
> On 07/29/2014 12:18 PM, Liu Bo wrote:
> >On Mon, Jul 28, 2014 at 01:11:19PM +0200, Torbjørn wrote:
> >>On 28. juli 2014 12:00, Liu Bo wrote:
> >>
> >>>This seems to be incomplete(Looks like dmesg has reached its buffer size
> >>>limit),
>
Hi Gui,
(2014/07/17 11:40), Gui Hecheng wrote:
> The -f option of scrub means to skip checking running scrub,
> not to force checking.
>
> Signed-off-by: Gui Hecheng
> ---
> Documentation/btrfs-scrub.txt | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/Documentation/b
On Wed, 2014-07-30 at 14:20 +0900, Satoru Takeuchi wrote:
> Hi Gui,
>
> (2014/07/17 11:40), Gui Hecheng wrote:
> > The -f option of scrub means to skip checking running scrub,
> > not to force checking.
> >
> > Signed-off-by: Gui Hecheng
> > ---
> > Documentation/btrfs-scrub.txt | 2 +-
> > 1
Hi Gui,
(2014/07/17 11:40), Gui Hecheng wrote:
> o Return 0 to indicate success,
>when detected errors were corrected during scrubbing.
>P.s. This is also to facilitate scripting when return value
> is to be checked.
> o Warn the users if there are uncorrectable errors detected.
>
Hi Gui,
(2014/07/17 11:40), Gui Hecheng wrote:
> The scrub_read_file function is always on a branch,
> which has (fd >= 0), so there is not need to judgment
> the pasted in arg.
>
> Signed-off-by: Gui Hecheng
> ---
> cmds-scrub.c | 3 ---
> 1 file changed, 3 deletions(-)
>
> diff --git a/cmd
Hi Gui,
(2014/07/30 14:39), Gui Hecheng wrote:
On Wed, 2014-07-30 at 14:20 +0900, Satoru Takeuchi wrote:
Hi Gui,
(2014/07/17 11:40), Gui Hecheng wrote:
The -f option of scrub means to skip checking running scrub,
not to force checking.
Signed-off-by: Gui Hecheng
---
Documentation/btrfs-s
Hi Gui,
(2014/07/30 15:03), Satoru Takeuchi wrote:
> Hi Gui,
>
> (2014/07/17 11:40), Gui Hecheng wrote:
>> o Return 0 to indicate success,
>> when detected errors were corrected during scrubbing.
>> P.s. This is also to facilitate scripting when return value
>> is to be checked.
58 matches
Mail list logo