* [PATCH 1/3] Btrfs: do not log extents when we only log new names
@ 2012-11-01 6:38 Liu Bo
2012-11-01 6:38 ` [PATCH 2/3] Btrfs: get right arguments for btrfs_wait_ordered_range Liu Bo
2012-11-01 6:38 ` [PATCH 3/3] Btrfs: cleanup for btrfs_wait_order_range Liu Bo
0 siblings, 2 replies; 3+ messages in thread
From: Liu Bo @ 2012-11-01 6:38 UTC (permalink / raw)
To: linux-btrfs
When we log new names, we need to log just enough to recreate the inode
during log replay, and there is no need to log extents along with it.
This actually fixes a bug revealed by xfstests 241, where it shows
that we're logging some extents that have not updated metadata,
so we don't get proper EXTENT_DATA items to be copied to log tree.
Signed-off-by: Liu Bo <bo.li.liu@oracle.com>
---
fs/btrfs/tree-log.c | 3 ++-
1 files changed, 2 insertions(+), 1 deletions(-)
diff --git a/fs/btrfs/tree-log.c b/fs/btrfs/tree-log.c
index 81e407d..4ec41ec 100644
--- a/fs/btrfs/tree-log.c
+++ b/fs/btrfs/tree-log.c
@@ -3435,7 +3435,8 @@ static int btrfs_log_inode(struct btrfs_trans_handle *trans,
ret = btrfs_truncate_inode_items(trans, log,
inode, 0, 0);
} else {
- fast_search = true;
+ if (inode_only == LOG_INODE_ALL)
+ fast_search = true;
max_key.type = BTRFS_XATTR_ITEM_KEY;
ret = drop_objectid_items(trans, log, path, ino,
BTRFS_XATTR_ITEM_KEY);
--
1.7.7.6
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [PATCH 2/3] Btrfs: get right arguments for btrfs_wait_ordered_range
2012-11-01 6:38 [PATCH 1/3] Btrfs: do not log extents when we only log new names Liu Bo
@ 2012-11-01 6:38 ` Liu Bo
2012-11-01 6:38 ` [PATCH 3/3] Btrfs: cleanup for btrfs_wait_order_range Liu Bo
1 sibling, 0 replies; 3+ messages in thread
From: Liu Bo @ 2012-11-01 6:38 UTC (permalink / raw)
To: linux-btrfs
btrfs_wait_ordered_range expects for 'len' instead of 'end'.
Signed-off-by: Liu Bo <bo.li.liu@oracle.com>
---
fs/btrfs/file.c | 2 +-
1 files changed, 1 insertions(+), 1 deletions(-)
diff --git a/fs/btrfs/file.c b/fs/btrfs/file.c
index 9ab1bed..d2df981 100644
--- a/fs/btrfs/file.c
+++ b/fs/btrfs/file.c
@@ -1562,7 +1562,7 @@ int btrfs_sync_file(struct file *file, loff_t start, loff_t end, int datasync)
* range being left.
*/
atomic_inc(&root->log_batch);
- btrfs_wait_ordered_range(inode, start, end);
+ btrfs_wait_ordered_range(inode, start, end - start + 1);
atomic_inc(&root->log_batch);
/*
--
1.7.7.6
^ permalink raw reply related [flat|nested] 3+ messages in thread
* [PATCH 3/3] Btrfs: cleanup for btrfs_wait_order_range
2012-11-01 6:38 [PATCH 1/3] Btrfs: do not log extents when we only log new names Liu Bo
2012-11-01 6:38 ` [PATCH 2/3] Btrfs: get right arguments for btrfs_wait_ordered_range Liu Bo
@ 2012-11-01 6:38 ` Liu Bo
1 sibling, 0 replies; 3+ messages in thread
From: Liu Bo @ 2012-11-01 6:38 UTC (permalink / raw)
To: linux-btrfs
Variable 'found' is no more used.
Signed-off-by: Liu Bo <bo.li.liu@oracle.com>
---
fs/btrfs/ordered-data.c | 3 ---
1 files changed, 0 insertions(+), 3 deletions(-)
diff --git a/fs/btrfs/ordered-data.c b/fs/btrfs/ordered-data.c
index 7772f02..7f75bea 100644
--- a/fs/btrfs/ordered-data.c
+++ b/fs/btrfs/ordered-data.c
@@ -606,7 +606,6 @@ void btrfs_wait_ordered_range(struct inode *inode, u64 start, u64 len)
u64 end;
u64 orig_end;
struct btrfs_ordered_extent *ordered;
- int found;
if (start + len < start) {
orig_end = INT_LIMIT(loff_t);
@@ -642,7 +641,6 @@ void btrfs_wait_ordered_range(struct inode *inode, u64 start, u64 len)
filemap_fdatawait_range(inode->i_mapping, start, orig_end);
end = orig_end;
- found = 0;
while (1) {
ordered = btrfs_lookup_first_ordered_extent(inode, end);
if (!ordered)
@@ -655,7 +653,6 @@ void btrfs_wait_ordered_range(struct inode *inode, u64 start, u64 len)
btrfs_put_ordered_extent(ordered);
break;
}
- found++;
btrfs_start_ordered_extent(inode, ordered, 1);
end = ordered->file_offset;
btrfs_put_ordered_extent(ordered);
--
1.7.7.6
^ permalink raw reply related [flat|nested] 3+ messages in thread
end of thread, other threads:[~2012-11-01 6:39 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2012-11-01 6:38 [PATCH 1/3] Btrfs: do not log extents when we only log new names Liu Bo
2012-11-01 6:38 ` [PATCH 2/3] Btrfs: get right arguments for btrfs_wait_ordered_range Liu Bo
2012-11-01 6:38 ` [PATCH 3/3] Btrfs: cleanup for btrfs_wait_order_range Liu Bo
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).