From: Sage Weil Date: Fri, 23 May 2008 22:17:06 +0000 (-0700) Subject: client: set st_blocks correctly X-Git-Tag: v0.3~170^2~77 X-Git-Url: http://git-server-git.apps.pok.os.sepia.ceph.com/?a=commitdiff_plain;h=cdbfce4ab7fa542539edd59d895874a8996c47d8;p=ceph.git client: set st_blocks correctly --- diff --git a/src/client/Client.cc b/src/client/Client.cc index 3c5930840a7..6b2a782c8fb 100644 --- a/src/client/Client.cc +++ b/src/client/Client.cc @@ -2245,12 +2245,14 @@ int Client::fill_stat(Inode *in, struct stat *st) st->st_ctime = MAX(in->inode.ctime, in->inode.mtime); st->st_atime = in->inode.atime; st->st_mtime = in->inode.mtime; - if (in->inode.is_dir()) + if (in->inode.is_dir()) { st->st_size = in->inode.nested.rbytes; - else + st->st_blocks = 1; + } else { st->st_size = in->inode.size; + st->st_blocks = (in->inode.size + 511) >> 9; + } st->st_blksize = MAX(ceph_file_layout_su(in->inode.layout), 4096); - st->st_blocks = in->inode.size ? DIV_ROUND_UP(in->inode.size, st->st_blksize):0; return in->lease_mask; }