On Tue, Jun 06, 2017 at 01:52:52PM -0600, Liu Bo wrote: > With switching to use btrfs_bio_clone_partial() to split bio in > directIO path, read endio is also adapted to that by recording a > iterator in btrfs_bio, however, it breaks those bios which are less > than stripe length thus no need to be split and results in NULL > pointer dereference. > > This fixes the issue by recording the required bio iterator in > btrfs_bio_clone() which is used to clone non-split bio in directIO > path. It doesn't affect other calls of btrfs_bio_clone() because they > don't need to use this iterator. > > This bug was caught by fstests/generic/091. > > Cc: David Sterba <dsterba@xxxxxxx> > Signed-off-by: Liu Bo <bo.li.liu@xxxxxxxxxx> > --- > Based on David's for-next. > Fixes: commit "Btrfs: change how we iterate bios in endio" I'd rather fold this change to the original patch than to have a separate fixup. The changelog can be updated with description of the special case. -- To unsubscribe from this list: send the line "unsubscribe linux-btrfs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html
