Displaying 10 results from an estimated 10 matches for "btrfs_inode_nodatasum".
2012 Aug 15
6
State of nocow file attribute
Hello,
some time ago we discussed on #btrfs that the nocow attribute for files wasn''t
working (around 3.3 or 3.4 kernels). That was evident by files fragmenting even
with the attribute set.
Chris mentioned to find a fix quickly for that, and posted some lines of change
into irc. But recently someone mentioned that 3.6-rc looks like still not
respecting nocow for files.
Is there really
2013 Aug 06
6
[PATCH 0/4] btrfs: out-of-band (aka offline) dedupe v4
...e access to each file before deduping. For
the source, we only check that it is opened for read. Target files have to
be open for write.
- don''t dedupe on readonly submounts (this is to maintain
- check that we don''t dedupe files with different checksumming states
(compare BTRFS_INODE_NODATASUM flags)
- get and maintain write access to the mount during the extent same
operation (mount_want_write())
- allocate our read buffers up front in btrfs_ioctl_file_extent_same() and
pass them through for re-use on every call to btrfs_extent_same(). (thanks
to David Sterba <dsterba@suse.cz...
2008 Jan 07
1
[PATCH]Add rollback support for the converter
...ze = btrfs_stack_inode_size(btrfs_inode);
+ u32 inode_flags = btrfs_stack_inode_flags(btrfs_inode);
struct blk_iterate_data data = {
.trans = trans,
.root = root,
@@ -466,6 +470,9 @@ static int create_file_extents(struct bt
.checksum = 1,
.errcode = 0,
};
+
+ if (inode_flags & BTRFS_INODE_NODATASUM)
+ data.checksum = 0;
err = ext2fs_block_iterate2(ext2_fs, ext2_ino, BLOCK_FLAG_DATA_ONLY,
NULL, __block_iterate_proc, &data);
@@ -495,7 +502,7 @@ static int create_file_extents(struct bt
} else if (data.num_blocks > 0) {
ret = record_file_blocks(trans, root, objectid, btrf...
2010 Mar 20
2
[PATCH 4/4] btrfs-convert: split into convert/.
...y;
- struct btrfs_inode_item btrfs_inode;
-
- if (ext2_inode->i_links_count == 0)
- return 0;
-
- copy_inode_item(&btrfs_inode, ext2_inode, ext2_fs->blocksize);
- if (!datacsum && S_ISREG(ext2_inode->i_mode)) {
- u32 flags = btrfs_stack_inode_flags(&btrfs_inode) |
- BTRFS_INODE_NODATASUM;
- btrfs_set_stack_inode_flags(&btrfs_inode, flags);
- }
-
- switch (ext2_inode->i_mode & S_IFMT) {
- case S_IFREG:
- ret = create_file_extents(trans, root, objectid, &btrfs_inode,
- ext2_fs, ext2_ino, datacsum, packing);
- break;
- case S_IFDIR:
- ret = create_dir_entries(tr...
2013 Nov 12
0
[PATCH] Btrfs: incompatible format change to remove hole extents V4
...ath->nodes[0];
+ struct btrfs_key first_key, last_key, key;
int ret;
struct btrfs_key *ins_keys;
u32 *ins_sizes;
@@ -3203,6 +3205,9 @@ static noinline int copy_items(struct btrfs_trans_handle *trans,
int i;
struct list_head ordered_sums;
int skip_csum = BTRFS_I(inode)->flags & BTRFS_INODE_NODATASUM;
+ bool has_extents = false;
+ bool need_find_last_extent = (*last_extent == 0);
+ bool done = false;
INIT_LIST_HEAD(&ordered_sums);
@@ -3211,6 +3216,8 @@ static noinline int copy_items(struct btrfs_trans_handle *trans,
if (!ins_data)
return -ENOMEM;
+ first_key.objectid = (u64)-1;...
2011 Jun 21
19
[GIT PULL v3] Btrfs: improve write ahead log with sub transaction
I''ve been working to try to improve the write-ahead log''s performance,
and I found that the bottleneck addresses in the checksum items,
especially when we want to make a random write on a large file, e.g a 4G file.
Then a idea for this suggested by Chris is to use sub transaction ids and just
to log the part of inode that had changed since either the last log commit or
the last
2010 May 07
6
[PATCH 1/5] fs: allow short direct-io reads to be completed via buffered IO V2
V1->V2: Check to see if our current ppos is >= i_size after a short DIO read,
just in case it was actually a short read and we need to just return.
This is similar to what already happens in the write case. If we have a short
read while doing O_DIRECT, instead of just returning, fallthrough and try to
read the rest via buffered IO. BTRFS needs this because if we encounter a
compressed or
2010 Sep 03
0
[PATCH 1/2] btrfs: document where we use BUG_ON instead of error handling
...ug_on(ret);
bio_put(comp_bio);
@@ -681,13 +681,13 @@ int btrfs_submit_compressed_read(struct inode *inode, struct bio *bio,
bio_get(comp_bio);
ret = btrfs_bio_wq_end_io(root->fs_info, comp_bio, 0);
- BUG_ON(ret);
+ btrfs_fixable_bug_on(ret);
if (!(BTRFS_I(inode)->flags & BTRFS_INODE_NODATASUM))
btrfs_lookup_bio_sums(root, inode, comp_bio, sums);
ret = btrfs_map_bio(root, READ, comp_bio, mirror_num, 0);
- BUG_ON(ret);
+ btrfs_fixable_bug_on(ret);
bio_put(comp_bio);
return 0;
diff --git a/fs/btrfs/ctree.c b/fs/btrfs/ctree.c
index c3df14c..781b4ae 100644
--- a/fs/btrfs/ctree.c...
2012 Mar 20
13
[PATCH 0 of 3 v2] PV-GRUB: add support for ext4 and btrfs
Hi,
The following patches add support for ext4 and btrfs to
PV-GRUB. These patches are taken nearly verbatim from those provided
by Fedora and Gentoo.
We''ve been using these patches for the PV-GRUB images available in EC2
for some time now with no problems.
Changes from v1:
- Makefile has been changed to check the exit code from patch
- The btrfs patch has been rebased to apply
2011 Oct 04
68
[patch 00/65] Error handling patchset v3
Hi all -
Here''s my current error handling patchset, against 3.1-rc8. Almost all of
this patchset is preparing for actual error handling. Before we start in
on that work, I''m trying to reduce the surface we need to worry about. It
turns out that there is a ton of code that returns an error code but never
actually reports an error.
The patchset has grown to 65 patches. 46 of them