search for: map_start

Displaying 7 results from an estimated 7 matches for "map_start".

Did you mean: gap_start
2013 Aug 29
23
[PATCH] Btrfs: optimize key searches in btrfs_search_slot
...c +++ b/fs/btrfs/ctree.c @@ -2426,6 +2426,59 @@ done: return ret; } +static int key_search(struct extent_buffer *b, struct btrfs_key *key, + int level, int *prev_cmp, int *slot) +{ + unsigned long eb_offset = 0; + unsigned long len_left = b->len; + char *kaddr = NULL; + unsigned long map_start = 0; + unsigned long map_len = 0; + unsigned long offset; + struct btrfs_disk_key *k = NULL; + struct btrfs_disk_key unaligned; + + if (*prev_cmp != 0) { + *prev_cmp = bin_search(b, key, level, slot); + return *prev_cmp; + } + + if (level == 0) + offset = offsetof(struct btrfs_leaf, items); + el...
2013 Aug 07
1
FIEMAP problem
Hi, We are trying to use OCFS2 as VM storage. After running into problems with qemu's disk_mirror feature we now think there could be a problem with the FIEMAP ioctl in OCFS2. As far as I understand the situation looks like this: Qemu inquiries the FS if the given section of the image is already allocated via the FIEMAP ioctl [1] It especially checks if fm_mapped_extents is greater 0.
2011 May 11
8
[PATCH 1/4] Btrfs: map the node block when looking for readahead targets
...nritems(node); nr = slot; while (1) { + if (!node->map_token) { + unsigned long offset = btrfs_node_key_ptr_offset(nr); + map_private_extent_buffer(node, offset, + sizeof(struct btrfs_key_ptr), + &node->map_token, + &node->kaddr, + &node->map_start, + &node->map_len, KM_USER1); + } if (direction < 0) { if (nr == 0) break; @@ -1273,14 +1283,23 @@ static void reada_for_search(struct btrfs_root *root, search = btrfs_node_blockptr(node, nr); if ((search <= target && target - search <= 65536) ||...
2011 May 19
3
SEEK_DATA/HOLE on ocfs2 - v2
Two patches follow this message. One fixes the default implementation of SEEK_HOLE/DATA. This patch applies atop Josef's last posted patch. The second patch implements the same on ocfs2. The test tool for the same is available here. http://oss.oracle.com/~smushran/seek_data/seek_test.c It is improved since the last post. It runs cleanly on zfs, ocfs2 and ext3 (default behavior). Users
2011 May 19
3
SEEK_DATA/HOLE on ocfs2 - v2
Two patches follow this message. One fixes the default implementation of SEEK_HOLE/DATA. This patch applies atop Josef's last posted patch. The second patch implements the same on ocfs2. The test tool for the same is available here. http://oss.oracle.com/~smushran/seek_data/seek_test.c It is improved since the last post. It runs cleanly on zfs, ocfs2 and ext3 (default behavior). Users
2012 Dec 18
0
[PATCH] [RFC] Btrfs: Subpagesize blocksize (WIP).
..._uptodate) { - if (start_i == 0) + if (start_i == 0 && eb->len >= PAGE_SIZE) set_bit(EXTENT_BUFFER_UPTODATE, &eb->bflags); goto unlock_exit; } @@ -4693,7 +5158,7 @@ int map_private_extent_buffer(struct extent_buffer *eb, unsigned long start, unsigned long *map_start, unsigned long *map_len) { - size_t offset = start & (PAGE_CACHE_SIZE - 1); + size_t offset; char *kaddr; struct page *p; size_t start_offset = eb->start & ((u64)PAGE_CACHE_SIZE - 1); @@ -4709,6 +5174,9 @@ int map_private_extent_buffer(struct extent_buffer *eb, unsigned...
2012 Jun 21
0
[RFC PATCH V2] Btrfs: introduce extent buffer cache for each i-node
..., 0); + path, inode, -1, 0); if (ret < 0) { btrfs_free_path(path); return ret; diff --git a/fs/btrfs/extent_io.h b/fs/btrfs/extent_io.h index 25900af..3803812 100644 --- a/fs/btrfs/extent_io.h +++ b/fs/btrfs/extent_io.h @@ -129,6 +129,7 @@ struct extent_buffer { unsigned long map_start; unsigned long map_len; unsigned long bflags; + u64 root_objectid; struct extent_io_tree *tree; spinlock_t refs_lock; atomic_t refs; diff --git a/fs/btrfs/file-item.c b/fs/btrfs/file-item.c index 5d158d3..bc90d80 100644 --- a/fs/btrfs/file-item.c +++ b/fs/btrfs/file-item.c @@ -38,7 +38,7...