ceph: Update max_len with minimum required size

encode_fh on error should update max_len with minimum required
size, so that caller can redo the call with the reallocated buffer.
This is required with open by handle patch series

Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Signed-off-by: Sage Weil <sage@newdream.net>
This commit is contained in:
Aneesh Kumar K.V 2010-10-05 16:03:42 +05:30 committed by Sage Weil
parent 92923dcbfc
commit bba0cd0e3d
1 changed files with 4 additions and 1 deletions

View File

@ -62,13 +62,16 @@ static int ceph_encode_fh(struct dentry *dentry, u32 *rawfh, int *max_len,
*max_len = connected_handle_length;
type = 2;
} else if (*max_len >= handle_length) {
if (connectable)
if (connectable) {
*max_len = connected_handle_length;
return 255;
}
dout("encode_fh %p\n", dentry);
fh->ino = ceph_ino(dentry->d_inode);
*max_len = handle_length;
type = 1;
} else {
*max_len = handle_length;
return 255;
}
return type;