diff options
author | Ming Lei <ming.lei@canonical.com> | 2016-03-12 04:29:40 +0300 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2016-04-12 19:08:57 +0300 |
commit | 2775a60447ae12350711b443be1083117b6f13b8 (patch) | |
tree | 7cf3a8749d3b7eea0d9b4bcc89cbd3d0e1dc4ce2 /fs/fuse/file.c | |
parent | d5e30f2b934bf9964e1bf5fb1c1bd4d1bc865b5d (diff) | |
download | linux-2775a60447ae12350711b443be1083117b6f13b8.tar.xz |
md: multipath: don't hardcopy bio in .make_request path
commit fafcde3ac1a418688a734365203a12483b83907a upstream.
Inside multipath_make_request(), multipath maps the incoming
bio into low level device's bio, but it is totally wrong to
copy the bio into mapped bio via '*mapped_bio = *bio'. For
example, .__bi_remaining is kept in the copy, especially if
the incoming bio is chained to via bio splitting, so .bi_end_io
can't be called for the mapped bio at all in the completing path
in this kind of situation.
This patch fixes the issue by using clone style.
Reported-and-tested-by: Andrea Righi <righi.andrea@gmail.com>
Signed-off-by: Ming Lei <ming.lei@canonical.com>
Signed-off-by: Shaohua Li <shli@fb.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'fs/fuse/file.c')
0 files changed, 0 insertions, 0 deletions