On Wednesday, May 18, 2011 12:00:31 AM David Sterba wrote:
> xfstests/013 crashes when the test partition is mounted with -o discard:
>
> walk_up_log_tree
> btrfs_free_reserved_extent
> btrfs_discard_extent
> return -EOPNOTSUPP
> BUG_ON ret
>
> btrfs_discard_extent() should be fine when drive does not support the
> DISCARD operation and filter the EOPNOTSUPP retcode, but currently it
> does this only when some bytes were succesfully discarded.
>
> Signed-off-by: David Sterba <[email protected]>
> CC: [email protected]
> ---
> fs/btrfs/extent-tree.c | 2 +-
> 1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/fs/btrfs/extent-tree.c b/fs/btrfs/extent-tree.c
> index 9ee6bd5..feab2ab 100644
> --- a/fs/btrfs/extent-tree.c
> +++ b/fs/btrfs/extent-tree.c
> @@ -1790,7 +1790,7 @@ static int btrfs_discard_extent(struct btrfs_root
> *root, u64 bytenr,
> }
> kfree(multi);
> }
> - if (discarded_bytes && ret == -EOPNOTSUPP)
> + if (ret == -EOPNOTSUPP)
> ret = 0;
>
> if (actual_bytes)
>
Thanks for the fix, I thought EOPNOTSUPP could be useful by the caller that
time, and maybe we could do somthing
like remove the discard mount_opt in the fs_info so we can avoid calling it
again.
--
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