On Sat, Jul 24, 2010 at 12:01:59AM +0100, Daniel J Blueman wrote: > Hi Chris, > > This fixes some issues relating to direct I/O submission, however a > further patch will be needed to handle the case where allocation of > 'dip' fails, which is always dereferenced when finding the ordered > extent. >
Hi, There's an easier way to do this. This patch should fix the problem, Signed-off-by: Josef Bacik <[email protected]> diff --git a/fs/btrfs/inode.c b/fs/btrfs/inode.c index 3232945..7259ef9 100644 --- a/fs/btrfs/inode.c +++ b/fs/btrfs/inode.c @@ -5815,7 +5815,7 @@ free_ordered: if (write) { struct btrfs_ordered_extent *ordered; ordered = btrfs_lookup_ordered_extent(inode, - dip->logical_offset); + file_offset); if (!test_bit(BTRFS_ORDERED_PREALLOC, &ordered->flags) && !test_bit(BTRFS_ORDERED_NOCOW, &ordered->flags)) btrfs_free_reserved_extent(root, ordered->start, -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to [email protected] More majordomo info at http://vger.kernel.org/majordomo-info.html
