On 7.03.2018 19:37, Diego wrote:
> A typical notification of filesystem errors looks like this:
>
> BTRFS error (device sda2): bdev /dev/sda2 errs: wr 0, rd 1, flush 0, corrupt
> 0, gen 0
>
> The device name is being printed twice. Also, these abbreviatures
> feel unnecesary. Make the message
When we found free space difference between free space cache and block
group item, we just discard this free space cache.
Normally such difference is caused by btrfs_reserve_extent() called by
delalloc which is out of a transaction.
And since all btrfs_release_extent() is called with a transaction
08.03.2018 09:06, Marc MERLIN пишет:
> On Tue, Mar 06, 2018 at 12:02:47PM -0800, Marc MERLIN wrote:
>>> https://github.com/knorrie/python-btrfs/commit/1ace623f95300ecf581b1182780fd6432a46b24d
>>
>> Well, I had never heard about it until now, thank you.
>>
>> I'll see if I can make it work when I ge
When we found free space difference between free space cache and block
group item, we just discard this free space cache.
Normally such difference is caused by btrfs_reserve_extent() called by
delalloc which is out of a transaction.
And since all btrfs_release_extent() is called with a transaction
07.03.2018 21:49, Liu Bo пишет:
> Hi,
>
> In the following steps[1], if on receiver side has got
> changed via 'btrfs property set', then after doing incremental
> updates, receiver gets a different snapshot from what sender has sent.
>
> The reason behind it is that there is no change about fil
On Thu, Mar 08, 2018 at 01:56:45PM +0800, Lu Fengqi wrote:
> In the case of compression, each 128K input data chunk will be compressed
> to 4K (because of the characters written are duplicate). Therefore we have
> to write (128K * 16) to make sure every stripe can be hit.
>
> Signed-off-by: Lu Fen
On Tue, Mar 06, 2018 at 12:02:47PM -0800, Marc MERLIN wrote:
> > https://github.com/knorrie/python-btrfs/commit/1ace623f95300ecf581b1182780fd6432a46b24d
>
> Well, I had never heard about it until now, thank you.
>
> I'll see if I can make it work when I get a bit of time.
Sorry, I missed the fac
In the case of compression, each 128K input data chunk will be compressed
to 4K (because of the characters written are duplicate). Therefore we have
to write (128K * 16) to make sure every stripe can be hit.
Signed-off-by: Lu Fengqi
---
V2: Modify the regular expression to ensure that it matches
On 2018年03月08日 10:40, je...@suse.com wrote:
> From: Jeff Mahoney
>
> We use an int for 'full', 'all', and 'err' when we really mean a boolean.
>
> Signed-off-by: Jeff Mahoney
Reviewed-by: Qu Wenruo
Thanks,
Qu
> ---
> btrfs.c | 14 +++---
> help.c | 25 +
>
On 2018年03月08日 10:40, je...@suse.com wrote:
> From: Jeff Mahoney
>
> The only mechanism we have in the progs for searching qgroups is to load
> all of them and filter the results. This works for qgroup show but
> to add quota information to 'btrfs subvoluem show' it's pretty wasteful.
>
> Thi
On 2018年03月08日 10:40, je...@suse.com wrote:
> From: Jeff Mahoney
>
> We use structures to pass the info and limit from the kernel as items
> but store the individual values separately in btrfs_qgroup. We already
> have a btrfs_qgroup_limit structure that's used for setting the limit.
>
> This
On 2018年03月08日 10:40, je...@suse.com wrote:
> From: Jeff Mahoney
>
> The btrfs qgroup show command currently only exports qgroup IDs,
> forcing the user to resolve which subvolume each corresponds to.
>
> This patch adds pathname resolution to qgroup show so that when
> the -P option is used,
In the quest to remove all stack VLAs from the kernel[1], this refactors
the stack array size calculation to avoid using max(), which makes the
compiler think the size isn't fixed.
[1] https://lkml.org/lkml/2018/3/7/621
Signed-off-by: Kees Cook
---
net/ipv4/proc.c | 10 --
net/ipv6/proc
In the quest to remove all stack VLAs from the kernel[1], this refactors
the stack array size calculation to avoid using max(), which makes the
compiler think the size isn't fixed.
[1] https://lkml.org/lkml/2018/3/7/621
Signed-off-by: Kees Cook
---
fs/btrfs/tree-checker.c | 3 ++-
1 file change
In the quest to remove all stack VLAs from the kernel[1], this introduces
a new "simple max" macro, and changes the "sym" array size calculation to
use it. The value is actually a fixed size, but since the max() macro uses
some extensive tricks for safety, it ends up looking like a variable size
to
This series adds SIMPLE_MAX() to be used in places where a stack array
is actually fixed, but the compiler still warns about VLA usage due to
confusion caused by the safety checks in the max() macro.
I'm sending these via -mm since that's where I've introduced SIMPLE_MAX(),
and they should all hav
From: Jeff Mahoney
The btrfs qgroup show command currently only exports qgroup IDs,
forcing the user to resolve which subvolume each corresponds to.
This patch adds pathname resolution to qgroup show so that when
the -P option is used, the last column contains the pathname of
the root of the sub
From: Jeff Mahoney
In print_single_qgroup_table we check the loop index against
BTRFS_QGROUP_CHILD, but what we really mean is "last column." Since
we have an enum value to indicate the last value, use that instead
of assuming that BTRFS_QGROUP_CHILD is always last.
Reviewed-by: Qu Wenruo
Revi
From: Jeff Mahoney
Currently we can pass back root_info structures to callers but
have to free the strings manually. This adds a helper to do it
and uses it in cmd_subvol_show.
Signed-off-by: Jeff Mahoney
---
btrfs-list.c | 18 +++---
btrfs-list.h | 1 +
cmds-subvolume.c
From: Jeff Mahoney
In preparation to use cmd_struct as the command entry point, we need
to split out the 'filesystem balance' handling to not call cmd_balance
directly. The reason is that the flags that indicate a command is
hidden are a part of cmd_struct and so we can use a cmd_struct as a
dir
From: Jeff Mahoney
The usage definitions for send and receive follow the command
definitions, which use them. This works because we declare them
in commands.h. When we move to using cmd_struct as the entry point,
these declarations will be removed, breaking the commands. Since
that would be an
From: Jeff Mahoney
It's unlikely we're going to modify a pathname argument, so codify that
and use const.
Reviewed-by: Qu Wenruo
Signed-off-by: Jeff Mahoney
---
chunk-recover.c | 4 ++--
cmds-device.c | 2 +-
cmds-fi-usage.c | 6 +++---
cmds-rescue.c | 4 ++--
4 files changed, 8 insertion
From: Jeff Mahoney
We use structures to pass the info and limit from the kernel as items
but store the individual values separately in btrfs_qgroup. We already
have a btrfs_qgroup_limit structure that's used for setting the limit.
This patch introduces a btrfs_qgroup_info structure and uses tha
From: Jeff Mahoney
This patch adds a new -W option to wait for a rescan without starting a
new operation. This is useful for things like xfstests where we want
do to do a "btrfs quota enable" and not continue until the subsequent
rescan has finished.
In addition to documenting the new option in
From: Jeff Mahoney
This patch reports on the first-level qgroup, if any, associated with
a particular subvolume. It displays the usage and limit, subject
to the usual unit parameters.
Signed-off-by: Jeff Mahoney
---
cmds-subvolume.c | 50 ++
1 f
From: Jeff Mahoney
We use rb_entry all over the place for the root_info pointers. Add
a helper to make the code more readable.
Signed-off-by: Jeff Mahoney
---
btrfs-list.c | 30 --
1 file changed, 20 insertions(+), 10 deletions(-)
diff --git a/btrfs-list.c b/btrfs
From: Jeff Mahoney
The only mechanism we have in the progs for searching qgroups is to load
all of them and filter the results. This works for qgroup show but
to add quota information to 'btrfs subvoluem show' it's pretty wasteful.
This patch splits out setting up the search and performing the
From: Jeff Mahoney
This adds a global --format option to request extended output formats
from each command. Most of it is plumbing a new cmd_context structure
that's established at the beginning of argument parsing into the command
callbacks. That structure currently only contains the output mo
From: Jeff Mahoney
One of the common requests I receive is for 'df' like facilities
for subvolume usage. Really, the request is for monitoring tools to be
able to understand when subvolumes may be approaching quota in the same
manner traditional file systems approach ENOSPC.
This patch allows u
From: Jeff Mahoney
Most command groups just pass their own command group to
handle_command_group. We can remove the explicit definitions
of command group callbacks by passing the cmd_struct to
handle_command_group and allowing it to resolve the group from it.
Signed-off-by: Jeff Mahoney
---
b
From: Jeff Mahoney
This patch adds support for JSON and JSON-compat output. The latter is
intended to be compatible with Javascript's integers being represented
as 64-bit floats, with only 53 bits usable for the integer component.
Compat mode output will post 64-bit integers as an array of two 3
From: Jeff Mahoney
Now that every call site has a cmd_struct, we can just pass the cmd_struct
to usage to print the usager information. This allows us to interpret
the format flags we'll add later in this series to inform the user of
which output formats any given command supports.
Signed-off-b
From: Jeff Mahoney
Rather than having global command usage and callbacks used to create
cmd_structs in the command array, establish the cmd_struct structures
separately and use those. The next commit in the series passes the
cmd_struct to the command callbacks such that we can access flags
and d
From: Jeff Mahoney
This patch passes the cmd_struct to the command callback function. This
has several purposes: It allows the command callback to identify which
command was used to call it. It also gives us direct access to the
usage associated with that command.
Signed-off-by: Jeff Mahoney
From: Jeff Mahoney
Now that we have a cmd_struct everywhere, we can pass it to
clean_args_no_options and have it resolve the usage string from
it there. This is necessary for it to pass the cmd_struct to
usage() in the next patch.
Signed-off-by: Jeff Mahoney
---
cmds-balance.c| 6 +++---
From: Jeff Mahoney
Thanks to Qu Wenruo, Nikolay Borisov, and Tomohiro Misono for taking
the time to review my previous patchset. I've incorporated your
suggestions into this version.
Obviously this one is quite a bit longer than the first version. After
I posted it, Dave and I talked offline a
From: Jeff Mahoney
We use an int for 'full', 'all', and 'err' when we really mean a boolean.
Signed-off-by: Jeff Mahoney
---
btrfs.c | 14 +++---
help.c | 25 +
help.h | 4 ++--
3 files changed, 22 insertions(+), 21 deletions(-)
diff --git a/btrfs.c b/btrfs.
Ping again.
Since David is planning to merge qgroup patchset, this feature would
greatly improve test coverage.
Thanks,
Qu
On 2018年01月11日 14:04, Qu Wenruo wrote:
> Ping?
>
> Or do I need to rebase the patchset?
>
> Thanks,
> Qu
>
> On 2017年11月07日 16:42, Qu Wenruo wrote:
>> Can be fetched from
The regression is introduced to btrfs in linux v4.4 and it refuses to create
new files after log replay by returning -EEXIST.
Although the problem is on btrfs only, there is no btrfs stuff in terms of
test, so this makes it generic.
The kernel fix is
Btrfs: fix unexpected -EEXIST when creating
On 2018年03月08日 00:02, David Sterba wrote:
> On Thu, Feb 22, 2018 at 10:05:36AM +0800, Qu Wenruo wrote:
>>
>>
>> On 2018年02月22日 09:50, Jeff Mahoney wrote:
>>> On 2/21/18 8:36 PM, Qu Wenruo wrote:
On 2018年02月22日 04:19, je...@suse.com wrote:
> From: Jeff Mahoney
>
> There
On 3/7/18 3:17 AM, Nikolay Borisov wrote:
>
>
> On 2.03.2018 20:46, je...@suse.com wrote:
>> From: Jeff Mahoney
>>
>> It's unlikely we're going to modify a pathname argument, so codify that
>> and use const.
>>
>> Signed-off-by: Jeff Mahoney
>> ---
>> chunk-recover.c | 4 ++--
>> cmds-device.
On Wed, Mar 07, 2018 at 08:02:51PM +0100, Diego wrote:
> El miércoles, 7 de marzo de 2018 19:24:53 (CET) Hugo Mills escribió:
> >On multi-device filesystems, the two are not necessarily the same.
>
> Ouch. FWIW, I was moved to do this because I saw this conversation on
> IRC which made me thin
On 3/7/18 3:02 AM, Misono, Tomohiro wrote:
> On 2018/03/03 3:47, je...@suse.com wrote:
>> From: Jeff Mahoney
>>
>> The only mechanism we have in the progs for searching qgroups is to load
>> all of them and filter the results. This works for qgroup show but
>> to add quota information to 'btrfs s
On 3/7/18 1:09 AM, Qu Wenruo wrote:
>
>
> On 2018年03月03日 02:47, je...@suse.com wrote:
>> From: Jeff Mahoney
>>
>> This patch reports on the first-level qgroup, if any, associated with
>> a particular subvolume. It displays the usage and limit, subject
>> to the usual unit parameters.
>>
>> Sign
In case of raid56, writes and rebuilds always take BTRFS_STRIPE_LEN(64K)
as unit, however, scrub_extent() sets blocksize as unit, so rebuild
process may be triggered on every block on a same stripe.
A typical example would be that when we're replacing a disappeared disk,
all reads on the disks get
Hi,
In the following steps[1], if on receiver side has got
changed via 'btrfs property set', then after doing incremental
updates, receiver gets a different snapshot from what sender has sent.
The reason behind it is that there is no change about file 'foo' in
the send stream, such that receiver
On 3/7/18 12:58 AM, Qu Wenruo wrote:
>
>
> On 2018年03月03日 02:47, je...@suse.com wrote:
>> diff --git a/qgroup.c b/qgroup.c
>> index b1be3311..2d0a6947 100644
>> --- a/qgroup.c
>> +++ b/qgroup.c
>> @@ -1267,6 +1249,66 @@ static int __qgroups_search(int fd, struct
>> qgroup_lookup *qgroup_lookup)
El miércoles, 7 de marzo de 2018 19:24:53 (CET) Hugo Mills escribió:
>On multi-device filesystems, the two are not necessarily the same.
Ouch. FWIW, I was moved to do this because I saw this conversation on
IRC which made me think that people aren't understanding what the
message means:
On 03/07/2018 01:40 AM, Misono, Tomohiro wrote:
> On 2018/03/07 5:29, Goffredo Baroncelli wrote:
>> On 03/06/2018 09:30 AM, Misono, Tomohiro wrote:
>>> Add new unprivileged ioctl (BTRFS_IOC_GET_SUBVOL_INFO) which searches
>>> and returns only subvolume related item (ROOT_ITEM/ROOT_BACKREF/ROOT_REF)
On Wed, Mar 07, 2018 at 06:37:29PM +0100, Diego wrote:
> A typical notification of filesystem errors looks like this:
>
> BTRFS error (device sda2): bdev /dev/sda2 errs: wr 0, rd 1, flush 0, corrupt
> 0, gen 0
>
> The device name is being printed twice.
For good reason -- the first part ("de
A typical notification of filesystem errors looks like this:
BTRFS error (device sda2): bdev /dev/sda2 errs: wr 0, rd 1, flush 0, corrupt 0,
gen 0
The device name is being printed twice. Also, these abbreviatures
feel unnecesary. Make the message look like this instead:
BTRFS error (device sda2
On Wed, Mar 07, 2018 at 09:40:18AM +0900, Misono, Tomohiro wrote:
> On 2018/03/07 5:29, Goffredo Baroncelli wrote:
> > On 03/06/2018 09:30 AM, Misono, Tomohiro wrote:
> >> Add new unprivileged ioctl (BTRFS_IOC_GET_SUBVOL_INFO) which searches
> >> and returns only subvolume related item (ROOT_ITEM/R
On 3/7/18 12:45 AM, Qu Wenruo wrote:
>
>
> On 2018年03月03日 02:47, je...@suse.com wrote:
>> diff --git a/cmds-qgroup.c b/cmds-qgroup.c
>> index 48686436..94cd0fd3 100644
>> --- a/cmds-qgroup.c
>> +++ b/cmds-qgroup.c
>> @@ -280,8 +280,10 @@ static const char * const cmd_qgroup_show_usage[] = {
>>
On Fri, Feb 02, 2018 at 11:45:46AM +, Filipe Manana wrote:
> On Tue, Dec 19, 2017 at 7:44 AM, Qu Wenruo wrote:
> > When multiple pending snapshots referring the same source subvolume are
> > executed, enabled quota will cause root item corruption, where root
> > items are using old bytenr (no
On Wed, Jan 31, 2018 at 05:09:13PM -0700, Liu Bo wrote:
> Fstests generic/475 provides a way to fail metadata reads while
> checking if checksum exists for the inode inside run_delalloc_nocow(),
> and csum_exist_in_range() interprets error (-EIO) as inode having
> checksum and makes its caller ente
On Mon, Feb 26, 2018 at 04:46:05PM +0800, Anand Jain wrote:
> We have btrfs_fs_info::data_chunk_allocations and
> btrfs_fs_info::metadata_ratio declared as unsigned which would
> be unsinged int and kernel style prefers unsigned int over bare
> unsigned. So this patch changes them to u32.
>
> Sign
On Wed, Feb 14, 2018 at 02:37:26PM +0200, Nikolay Borisov wrote:
> When performing an unlock on an extent buffer we'd like to order the
> decrement of extent_buffer::blocking_writers with waking up any
> waiters. In such situations it's sufficient to use smp_mb__after_atomic
> rather than the heavy
On Thu, Feb 22, 2018 at 10:05:36AM +0800, Qu Wenruo wrote:
>
>
> On 2018年02月22日 09:50, Jeff Mahoney wrote:
> > On 2/21/18 8:36 PM, Qu Wenruo wrote:
> >>
> >>
> >> On 2018年02月22日 04:19, je...@suse.com wrote:
> >>> From: Jeff Mahoney
> >>>
> >>> There are several places where we call btrfs_qgroup_
On Wed, Feb 21, 2018 at 03:31:40PM -0800, Howard McLauchlan wrote:
> Btrfs has two mount options for SSD optimizations: ssd and ssd_spread.
> Presently there is an option to disable all SSD optimizations, but there
> isn't an option to disable just ssd_spread.
>
> This patch adds a mount option no
On 3/7/18 1:34 AM, Qu Wenruo wrote:
>
>
> On 2018年03月03日 02:47, je...@suse.com wrote:
>> diff --git a/configure.ac b/configure.ac
>> index 56d17c3a..6aec672a 100644
>> --- a/configure.ac
>> +++ b/configure.ac
>> @@ -197,6 +197,12 @@ PKG_STATIC(UUID_LIBS_STATIC, [uuid])
>> PKG_CHECK_MODULES(ZLIB,
Signed-off-by: Nikolay Borisov
---
Hello,
Sending it as an RFC for the time being to see how people are going to react
and also I'd like some feedback on the mb semantics. For this purposed I've
CC'ed some memory ordering people :)
fs/btrfs/btrfs_inode.h | 17 -
fs/btrfs/ino
On Fri, Mar 02, 2018 at 01:22:50PM +0800, Qu Wenruo wrote:
> This provides the basis for later max_inline enhancement, which needs to
> access fs_info->nodesize.
I've checked if this patch can be applied independently, but no, see the
comment below.
> Signed-off-by: Qu Wenruo
> ---
> fs/btrfs/d
On 7.03.2018 16:43, David Sterba wrote:
> On Tue, Mar 06, 2018 at 11:22:21AM -0700, Liu Bo wrote:
>> On Tue, Mar 06, 2018 at 11:47:47AM +0100, David Sterba wrote:
>>> On Fri, Mar 02, 2018 at 04:10:37PM -0700, Liu Bo wrote:
In case of raid56, writes and rebuilds always take BTRFS_STRIPE_LEN(
On Wed, Mar 07, 2018 at 05:29:18PM +0800, Anand Jain wrote:
> btrfs_defrag_leaves() declares min_trans = 0; as variable, but
> doesn't vary it, so define it.
>
> Signed-off-by: Anand Jain
Reviewed-by: David Sterba
> ---
> v2->v1: Use BTRFS_OLDEST_GENERATION at more places where needed.
I've u
On Tue, Mar 06, 2018 at 11:22:21AM -0700, Liu Bo wrote:
> On Tue, Mar 06, 2018 at 11:47:47AM +0100, David Sterba wrote:
> > On Fri, Mar 02, 2018 at 04:10:37PM -0700, Liu Bo wrote:
> > > In case of raid56, writes and rebuilds always take BTRFS_STRIPE_LEN(64K)
> > > as unit, however, scrub_extent() s
On Tue, Mar 06, 2018 at 11:24:05AM -0800, Matthew Wilcox wrote:
> From: Matthew Wilcox
>
> Signed-off-by: Matthew Wilcox
Acked-by: David Sterba
--
To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in
the body of a message to majord...@vger.kernel.org
More majordomo info at
On Tue, Mar 06, 2018 at 11:23:16AM -0800, Matthew Wilcox wrote:
> From: Matthew Wilcox
>
> The current implementation of btrfs_page_exists_in_range() gives the
> wrong answer if the workingset code has stored a shadow entry in the
> page cache. The filemap_range_has_page() function does not have
On Wed, Mar 7, 2018 at 7:07 AM, Eryu Guan wrote:
> On Tue, Mar 06, 2018 at 03:02:31PM +0800, Lu Fengqi wrote:
>> Because of commit e76e13ce8c0b ("fsstress: implement the
>> clonerange/deduperange ioctls"), dedupe makes the number of references to
>> the same extent item increase so much that the d
On 2018年03月07日 20:17, Nikolay Borisov wrote:
>
>
> On 7.03.2018 14:14, Qu Wenruo wrote:
>>
>>
>
>
>
SHARED flag is determined after extent map merge, so here we can't rely
on em here.
>>>
>>> Shouldn't extent maps correspond to 1:1 disk-state. I.e. they are just
>>> the memor
On 7.03.2018 14:14, Qu Wenruo wrote:
>
>
>>>
>>> SHARED flag is determined after extent map merge, so here we can't rely
>>> on em here.
>>
>> Shouldn't extent maps correspond to 1:1 disk-state. I.e. they are just
>> the memory cache of the extent state. So if we merge them, shouldn't we
>>
On 2018年03月07日 19:27, Nikolay Borisov wrote:
>
>
> On 7.03.2018 13:18, Qu Wenruo wrote:
>>
>>
>> On 2018年03月07日 19:01, robbieko wrote:
>>> Qu Wenruo 於 2018-03-07 18:42 寫到:
On 2018年03月07日 18:33, Qu Wenruo wrote:
>
>
> On 2018年03月07日 16:20, robbieko wrote:
>> From: Robbie Ko
On 7.03.2018 13:18, Qu Wenruo wrote:
>
>
> On 2018年03月07日 19:01, robbieko wrote:
>> Qu Wenruo 於 2018-03-07 18:42 寫到:
>>> On 2018年03月07日 18:33, Qu Wenruo wrote:
On 2018年03月07日 16:20, robbieko wrote:
> From: Robbie Ko
>
> [BUG]
> Range clone can cause fiemap to re
On 2018年03月07日 19:01, robbieko wrote:
> Qu Wenruo 於 2018-03-07 18:42 寫到:
>> On 2018年03月07日 18:33, Qu Wenruo wrote:
>>>
>>>
>>> On 2018年03月07日 16:20, robbieko wrote:
From: Robbie Ko
[BUG]
Range clone can cause fiemap to return error result.
Like:
# mount /dev/vdb5 /
On 7.03.2018 12:27, robbieko wrote:
> Nikolay Borisov 於 2018-03-07 18:19 寫到:
>> On 7.03.2018 10:20, robbieko wrote:
>>> From: Robbie Ko
>>>
>>> # mount /dev/vdb5 /mnt/btrfs
>>> # dd if=/dev/zero bs=16K count=4 oflag=dsync of=/mnt/btrfs/file
>>> # xfs_io -c "fiemap -v" /mnt/btrfs/file
>>> /
Qu Wenruo 於 2018-03-07 18:42 寫到:
On 2018年03月07日 18:33, Qu Wenruo wrote:
On 2018年03月07日 16:20, robbieko wrote:
From: Robbie Ko
[BUG]
Range clone can cause fiemap to return error result.
Like:
# mount /dev/vdb5 /mnt/btrfs
# dd if=/dev/zero bs=16K count=2 oflag=dsync of=/mnt/btrfs/file
# xf
On 2018年03月07日 18:33, Qu Wenruo wrote:
>
>
> On 2018年03月07日 16:20, robbieko wrote:
>> From: Robbie Ko
>>
>> [BUG]
>> Range clone can cause fiemap to return error result.
>> Like:
>> # mount /dev/vdb5 /mnt/btrfs
>> # dd if=/dev/zero bs=16K count=2 oflag=dsync of=/mnt/btrfs/file
>> # xfs_io -
On 2018年03月07日 16:20, robbieko wrote:
> From: Robbie Ko
>
> [BUG]
> Range clone can cause fiemap to return error result.
> Like:
> # mount /dev/vdb5 /mnt/btrfs
> # dd if=/dev/zero bs=16K count=2 oflag=dsync of=/mnt/btrfs/file
> # xfs_io -c "fiemap -v" /mnt/btrfs/file
> /mnt/btrfs/file:
> E
Nikolay Borisov 於 2018-03-07 18:19 寫到:
On 7.03.2018 10:20, robbieko wrote:
From: Robbie Ko
# mount /dev/vdb5 /mnt/btrfs
# dd if=/dev/zero bs=16K count=4 oflag=dsync of=/mnt/btrfs/file
# xfs_io -c "fiemap -v" /mnt/btrfs/file
/mnt/btrfs/file:
EXT: FILE-OFFSET BLOCK-RANGE TOTAL FL
On 7.03.2018 10:20, robbieko wrote:
> From: Robbie Ko
>
> # mount /dev/vdb5 /mnt/btrfs
> # dd if=/dev/zero bs=16K count=4 oflag=dsync of=/mnt/btrfs/file
> # xfs_io -c "fiemap -v" /mnt/btrfs/file
> /mnt/btrfs/file:
> EXT: FILE-OFFSET BLOCK-RANGE TOTAL FLAGS
>0: [0..127]:
Qu Wenruo 於 2018-03-07 17:27 寫到:
On 2018年03月07日 16:20, robbieko wrote:
From: Robbie Ko
This patchset intends to fix btrfs fiemap related bug.
The fiemap has the following problems:
1) Wrong extent count when fm_extent_count is zero.
2) SHARED bit is not correct
I have two ideas, but I do n
On 2018年03月07日 16:20, robbieko wrote:
> From: Robbie Ko
>
> This patchset intends to fix btrfs fiemap related bug.
>
> The fiemap has the following problems:
>
> 1) Wrong extent count when fm_extent_count is zero.
>
>
> 2) SHARED bit is not correct
> I have two ideas, but I do not know whic
btrfs_defrag_leaves() declares min_trans = 0; as variable, but
doesn't vary it, so define it.
Signed-off-by: Anand Jain
---
v2->v1: Use BTRFS_OLDEST_GENERATION at more places where needed.
fs/btrfs/ctree.h | 2 ++
fs/btrfs/ioctl.c | 2 +-
fs/btrfs/tree-defrag.c | 5 ++---
fs/btrfs/u
On 2.03.2018 20:47, je...@suse.com wrote:
> From: Jeff Mahoney
>
> We use structures to pass the info and limit from the kernel as items
> but store the individual values separately in btrfs_qgroup. We already
> have a btrfs_qgroup_limit structure that's used for setting the limit.
>
> This
In the case of compression, each 128K input data chunk will be compressed
to 4K (because of the characters written are duplicate). Therefore we have
to write (128K * 16) to make sure every stripe can be hit.
Signed-off-by: Lu Fengqi
---
tests/btrfs/146 | 11 +--
1 file changed, 9 inserti
From: Robbie Ko
This patchset intends to fix btrfs fiemap related bug.
The fiemap has the following problems:
1) Wrong extent count when fm_extent_count is zero.
2) SHARED bit is not correct
I have two ideas, but I do not know which one is the best.
Like:
# dd if=/dev/zero bs=16K count=2 of
From: Robbie Ko
# mount /dev/vdb5 /mnt/btrfs
# dd if=/dev/zero bs=16K count=4 oflag=dsync of=/mnt/btrfs/file
# xfs_io -c "fiemap -v" /mnt/btrfs/file
/mnt/btrfs/file:
EXT: FILE-OFFSET BLOCK-RANGE TOTAL FLAGS
0: [0..127]:25088..25215 128 0x1
Run fiemap with fm_ext
From: Robbie Ko
[BUG]
Range clone can cause fiemap to return error result.
Like:
# mount /dev/vdb5 /mnt/btrfs
# dd if=/dev/zero bs=16K count=2 oflag=dsync of=/mnt/btrfs/file
# xfs_io -c "fiemap -v" /mnt/btrfs/file
/mnt/btrfs/file:
EXT: FILE-OFFSET BLOCK-RANGE TOTAL FLAGS
0: [0..
On 2.03.2018 20:46, je...@suse.com wrote:
> From: Jeff Mahoney
>
> It's unlikely we're going to modify a pathname argument, so codify that
> and use const.
>
> Signed-off-by: Jeff Mahoney
> ---
> chunk-recover.c | 4 ++--
> cmds-device.c | 2 +-
> cmds-fi-usage.c | 6 +++---
> cmds-rescue
On 2.03.2018 20:46, je...@suse.com wrote:
> From: Jeff Mahoney
>
> In print_single_qgroup_table we check the loop index against
> BTRFS_QGROUP_CHILD, but what we really mean is "last column." Since
> we have an enum value to indicate the last value, use that instead
> of assuming that BTRFS_Q
On 2018/03/03 3:47, je...@suse.com wrote:
> From: Jeff Mahoney
>
> The only mechanism we have in the progs for searching qgroups is to load
> all of them and filter the results. This works for qgroup show but
> to add quota information to 'btrfs subvoluem show' it's pretty wasteful.
>
> This pa
On 7.03.2018 09:57, Nikolay Borisov wrote:
> From: Jan Kara
>
> When new directory 'DIR1' is created in a directory 'DIR0' with SGID bit
> set, DIR1 is expected to have SGID bit set (and owning group equal to
> the owning group of 'DIR0'). However when 'DIR0' also has some default
> ACLs that
91 matches
Mail list logo