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:
committed by
Sage Weil
parent
92923dcbfc
commit
bba0cd0e3d
@@ -62,13 +62,16 @@ static int ceph_encode_fh(struct dentry *dentry, u32 *rawfh, int *max_len,
|
|||||||
*max_len = connected_handle_length;
|
*max_len = connected_handle_length;
|
||||||
type = 2;
|
type = 2;
|
||||||
} else if (*max_len >= handle_length) {
|
} else if (*max_len >= handle_length) {
|
||||||
if (connectable)
|
if (connectable) {
|
||||||
|
*max_len = connected_handle_length;
|
||||||
return 255;
|
return 255;
|
||||||
|
}
|
||||||
dout("encode_fh %p\n", dentry);
|
dout("encode_fh %p\n", dentry);
|
||||||
fh->ino = ceph_ino(dentry->d_inode);
|
fh->ino = ceph_ino(dentry->d_inode);
|
||||||
*max_len = handle_length;
|
*max_len = handle_length;
|
||||||
type = 1;
|
type = 1;
|
||||||
} else {
|
} else {
|
||||||
|
*max_len = handle_length;
|
||||||
return 255;
|
return 255;
|
||||||
}
|
}
|
||||||
return type;
|
return type;
|
||||||
|
Reference in New Issue
Block a user