ceph: fix ENOENT logic in striped_read
authorSage Weil <sage@newdream.net>
Wed, 8 Jun 2011 03:40:35 +0000 (20:40 -0700)
committerSage Weil <sage@newdream.net>
Wed, 8 Jun 2011 04:34:16 +0000 (21:34 -0700)
commit0e98728fa32d338907631349a8cc2afa07c0cb9a
tree589aaa9b8b973194a7185ff92d7a8a6fe9051edb
parentc3cd62839aaa2cdb2b99687c9e44f1b300a4aece
ceph: fix ENOENT logic in striped_read

Getting ENOENT is equivalent to reading 0 bytes.  Make that correction
before setting up the hit_stripe and was_short flags.

Fixes the following case:
 dd if=/dev/zero of=/mnt/fs_depot/dd3 bs=1 seek=1048576 count=0
 dd if=/mnt/fs_depot/dd3 of=/root/ddout1 skip=8 bs=500 count=2 iflag=direct

Reported-by: Henry C Chang <henry.cy.chang@gmail.com>
Signed-off-by: Sage Weil <sage@newdream.net>
fs/ceph/file.c