diff options
author | Ryusuke Konishi <konishi.ryusuke@lab.ntt.co.jp> | 2011-02-04 01:19:38 +0900 |
---|---|---|
committer | Ryusuke Konishi <konishi.ryusuke@lab.ntt.co.jp> | 2011-03-08 14:58:30 +0900 |
commit | ae191838b0251d73b9d0a7254c6938406f5f6320 (patch) | |
tree | 5f2b08f5ab421c3644a988acc5ec7a1c65a631bd /include/linux/nilfs2_fs.h | |
parent | 4138ec23820012009aecc2b02856c62872dd3c34 (diff) | |
download | lwn-ae191838b0251d73b9d0a7254c6938406f5f6320.tar.gz lwn-ae191838b0251d73b9d0a7254c6938406f5f6320.zip |
nilfs2: optimize rec_len functions
This is a similar change to those in ext2/ext3 codebase (commit
40a063f6691ce937 and a4ae3094869f18e2, respectively).
The addition of 64k block capability in the rec_len_from_disk and
rec_len_to_disk functions added a bit of math overhead which slows
down file create workloads needlessly when the architecture cannot
even support 64k blocks. This will cut the corner.
Signed-off-by: Ryusuke Konishi <konishi.ryusuke@lab.ntt.co.jp>
Diffstat (limited to 'include/linux/nilfs2_fs.h')
-rw-r--r-- | include/linux/nilfs2_fs.h | 4 |
1 files changed, 4 insertions, 0 deletions
diff --git a/include/linux/nilfs2_fs.h b/include/linux/nilfs2_fs.h index fdcd1bc7f61f..3a65e5aa2d76 100644 --- a/include/linux/nilfs2_fs.h +++ b/include/linux/nilfs2_fs.h @@ -326,17 +326,21 @@ static inline unsigned nilfs_rec_len_from_disk(__le16 dlen) { unsigned len = le16_to_cpu(dlen); +#if !defined(__KERNEL__) || (PAGE_CACHE_SIZE >= 65536) if (len == NILFS_MAX_REC_LEN) return 1 << 16; +#endif return len; } static inline __le16 nilfs_rec_len_to_disk(unsigned len) { +#if !defined(__KERNEL__) || (PAGE_CACHE_SIZE >= 65536) if (len == (1 << 16)) return cpu_to_le16(NILFS_MAX_REC_LEN); else if (len > (1 << 16)) BUG(); +#endif return cpu_to_le16(len); } |