Report st_blksize=1048576 for directories so that glibc readdir()
will allocate a larger buffer to match the MDS_READDIR size
and reduce the number of syscalls for large dirs.
Signed-off-by: Andreas Dilger <adilger@dilger.ca>
Change-Id: If64057c20ecc35194c319d2a88c3036f12c41ed5
Reviewed-on: https://review.whamcloud.com/c/fs/lustre-release/+/50960
Tested-by: jenkins <devops@whamcloud.com>
Tested-by: Maloo <maloo@whamcloud.com>
Reviewed-by: Patrick Farrell <pfarrell@whamcloud.com>
Reviewed-by: Oleg Drokin <green@whamcloud.com>
Reviewed-by: Li Dongyang <dongyangli@ddn.com>
if (sbi->ll_stat_blksize)
stat->blksize = sbi->ll_stat_blksize;
else if (S_ISREG(inode->i_mode))
- stat->blksize = 1 << min(PTLRPC_MAX_BRW_BITS + 1,
- LL_MAX_BLKSIZE_BITS);
+ stat->blksize = min(PTLRPC_MAX_BRW_SIZE,
+ 1U << LL_MAX_BLKSIZE_BITS);
+ else if (S_ISDIR(inode->i_mode))
+ stat->blksize = min(MD_MAX_BRW_SIZE,
+ 1U << LL_MAX_BLKSIZE_BITS);
else
stat->blksize = 1 << inode->i_sb->s_blocksize_bits;