From 260ea82ad5458299b4a485fdd6115b382b2c176a Mon Sep 17 00:00:00 2001 From: Sage Weil Date: Fri, 17 Jul 2009 15:18:53 -0700 Subject: [PATCH] mds: always share min of projected, actual max_size --- src/mds/CInode.cc | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/src/mds/CInode.cc b/src/mds/CInode.cc index ac7e3faa1a7e9..5e062055a6634 100644 --- a/src/mds/CInode.cc +++ b/src/mds/CInode.cc @@ -1540,16 +1540,16 @@ bool CInode::encode_inodestat(bufferlist& bl, Session *session, i = pfile ? pi:oi; e.layout = i->layout; e.size = i->size; - if (i->client_ranges.count(client)) - e.max_size = i->client_ranges[client].last; - else - e.max_size = 0; e.truncate_seq = i->truncate_seq; e.truncate_size = i->truncate_size; i->mtime.encode_timeval(&e.mtime); i->atime.encode_timeval(&e.atime); e.time_warp_seq = i->time_warp_seq; + // max_size is min of projected, actual + e.max_size = MIN(oi->client_ranges.count(client) ? oi->client_ranges[client].last : 0, + pi->client_ranges.count(client) ? pi->client_ranges[client].last : 0); + e.files = i->dirstat.nfiles; e.subdirs = i->dirstat.nsubdirs; i->rstat.rctime.encode_timeval(&e.rctime); @@ -1679,16 +1679,16 @@ void CInode::encode_cap_message(MClientCaps *m, Capability *cap) i = pfile ? pi:oi; m->head.layout = i->layout; m->head.size = i->size; - if (i->client_ranges.count(client)) - m->head.max_size = i->client_ranges[client].last; - else - m->head.max_size = 0; m->head.truncate_seq = i->truncate_seq; m->head.truncate_size = i->truncate_size; i->mtime.encode_timeval(&m->head.mtime); i->atime.encode_timeval(&m->head.atime); m->head.time_warp_seq = i->time_warp_seq; + // max_size is min of projected, actual. + m->head.max_size = MIN(oi->client_ranges.count(client) ? oi->client_ranges[client].last : 0, + pi->client_ranges.count(client) ? pi->client_ranges[client].last : 0); + i = pauth ? pi:oi; m->head.mode = i->mode; m->head.uid = i->uid; -- 2.39.5