diff --git a/fs/nilfs2/dir.c b/fs/nilfs2/dir.c
index b60f4fb9a405397b354f60a9a4ddfe36120e7eaa..889e3e570213a9ce673e6ba4f5d3f0459f32ad28 100644
--- a/fs/nilfs2/dir.c
+++ b/fs/nilfs2/dir.c
@@ -76,7 +76,7 @@ static inline void nilfs_put_page(struct page *page)
  */
 static unsigned int nilfs_last_byte(struct inode *inode, unsigned long page_nr)
 {
-	unsigned int last_byte = inode->i_size;
+	u64 last_byte = inode->i_size;
 
 	last_byte -= page_nr << PAGE_SHIFT;
 	if (last_byte > PAGE_SIZE)