Revision 6e2a4505dba0cae8faa701426185dfb7b49f537c authored by Alex Elder on 27 March 2013, 14:16:30 UTC, committed by Sage Weil on 29 March 2013, 18:32:07 UTC
A result of ENOENT from a read request for an object that's part of an rbd image indicates that there is a hole in that portion of the image. Similarly, a short read for such an object indicates that the remainder of the read should be interpreted a full read with zeros filling out the end of the request. This behavior is not correct for objects that are not backing rbd image data. Currently rbd_img_obj_request_callback() assumes it should be done for all objects. Change rbd_img_obj_request_callback() so it only does this zeroing for image objects. Encapsulate that special handling in its own function. Add an assertion that the image object request is a bio request, since we assume that (and we currently don't support any other types). This resolves a problem identified here: http://tracker.ceph.com/issues/4559 The regression was introduced by bf0d5f503dc11d6314c0503591d258d60ee9c944. Reported-by: Dan van der Ster <dan@vanderster.com> Signed-off-by: Alex Elder <elder@inktank.com> Reviewed-off-by: Sage Weil <sage@inktank.com>
1 parent d6c0dd6
File | Mode | Size |
---|---|---|
partitions | ||
Kconfig | -rw-r--r-- | 3.3 KB |
Kconfig.iosched | -rw-r--r-- | 1.6 KB |
Makefile | -rw-r--r-- | 720 bytes |
blk-cgroup.c | -rw-r--r-- | 24.2 KB |
blk-cgroup.h | -rw-r--r-- | 13.6 KB |
blk-core.c | -rw-r--r-- | 82.1 KB |
blk-exec.c | -rw-r--r-- | 3.2 KB |
blk-flush.c | -rw-r--r-- | 13.1 KB |
blk-integrity.c | -rw-r--r-- | 11.5 KB |
blk-ioc.c | -rw-r--r-- | 10.2 KB |
blk-iopoll.c | -rw-r--r-- | 5.9 KB |
blk-lib.c | -rw-r--r-- | 7.1 KB |
blk-map.c | -rw-r--r-- | 8.2 KB |
blk-merge.c | -rw-r--r-- | 12.7 KB |
blk-settings.c | -rw-r--r-- | 26.3 KB |
blk-softirq.c | -rw-r--r-- | 4.5 KB |
blk-sysfs.c | -rw-r--r-- | 15.5 KB |
blk-tag.c | -rw-r--r-- | 9.7 KB |
blk-throttle.c | -rw-r--r-- | 30.8 KB |
blk-timeout.c | -rw-r--r-- | 4.7 KB |
blk.h | -rw-r--r-- | 7.1 KB |
bsg-lib.c | -rw-r--r-- | 6.0 KB |
bsg.c | -rw-r--r-- | 23.7 KB |
cfq-iosched.c | -rw-r--r-- | 108.2 KB |
compat_ioctl.c | -rw-r--r-- | 20.8 KB |
deadline-iosched.c | -rw-r--r-- | 11.1 KB |
elevator.c | -rw-r--r-- | 23.2 KB |
genhd.c | -rw-r--r-- | 43.8 KB |
ioctl.c | -rw-r--r-- | 10.7 KB |
noop-iosched.c | -rw-r--r-- | 2.5 KB |
partition-generic.c | -rw-r--r-- | 14.0 KB |
scsi_ioctl.c | -rw-r--r-- | 19.6 KB |
Computing file changes ...