diff options
author | Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com> | 2010-10-05 16:03:42 +0530 |
---|---|---|
committer | Sage Weil <sage@newdream.net> | 2010-10-07 08:00:24 -0700 |
commit | bba0cd0e3d97472855840af817b766e3f632a501 (patch) | |
tree | 31794165c098a079e3af617b594eaf9ae8d3bd8a /fs | |
parent | 92923dcbfcad107b0e0469f579a2455729ccf10e (diff) | |
download | linux-stable-bba0cd0e3d97472855840af817b766e3f632a501.tar.gz linux-stable-bba0cd0e3d97472855840af817b766e3f632a501.tar.bz2 linux-stable-bba0cd0e3d97472855840af817b766e3f632a501.zip |
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>
Diffstat (limited to 'fs')
-rw-r--r-- | fs/ceph/export.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/fs/ceph/export.c b/fs/ceph/export.c index 387c5823944e..e38423e82f2e 100644 --- a/fs/ceph/export.c +++ b/fs/ceph/export.c @@ -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; |