At Tue, 4 Feb 2014 11:53:43 +0800, Liu Yuan wrote: > > This is a defensive patch, but solve a problem we found on the test cluster. The > problem is tricky: > > init_vdi_state() errorr out as "failed to read inode header xxx, 0". > > After a detailed log analyzing, we found that the cause of this problem is > mismatch of object of path between get_obj_path() and its real path, e.g, > > - disk1/oidA (real location) > - disk3/oidA (get_obj_path() location) > > So default_read() fails. > > To solve this problem and any future problems caused by misplaced object (if any > by any unexpected reason), we call default_exist() before default_{read, write}. > By this means, all the misplaced objects will be placed properly before > any read/write operations. > > Signed-off-by: Liu Yuan <namei.unix at gmail.com> > --- > sheep/plain_store.c | 34 +++++++++++++++++++++++++++++++--- > 1 file changed, 31 insertions(+), 3 deletions(-) Applied, thanks. Kazutaka |