Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

f2fs: fix to access i_size w/ i_size_read()

It recommends to use i_size_{read,write}() to access and update i_size,
otherwise, we may get wrong tearing value due to high 32-bits value
and low 32-bits value of i_size field are not updated atomically in
32-bits archicture machine.

Signed-off-by: Chao Yu <chao@kernel.org>
Signed-off-by: Jaegeuk Kim <jaegeuk@kernel.org>

authored by

Chao Yu and committed by
Jaegeuk Kim
5b5578c3 297baa4a

+4 -4
+4 -4
include/trace/events/f2fs.h
··· 204 204 __entry->pino = F2FS_I(inode)->i_pino; 205 205 __entry->mode = inode->i_mode; 206 206 __entry->nlink = inode->i_nlink; 207 - __entry->size = inode->i_size; 207 + __entry->size = i_size_read(inode); 208 208 __entry->blocks = inode->i_blocks; 209 209 __entry->advise = F2FS_I(inode)->i_advise; 210 210 ), ··· 353 353 TP_fast_assign( 354 354 __entry->dev = dir->i_sb->s_dev; 355 355 __entry->ino = dir->i_ino; 356 - __entry->size = dir->i_size; 356 + __entry->size = i_size_read(dir); 357 357 __entry->blocks = dir->i_blocks; 358 358 __assign_str(name); 359 359 ), ··· 433 433 TP_fast_assign( 434 434 __entry->dev = inode->i_sb->s_dev; 435 435 __entry->ino = inode->i_ino; 436 - __entry->size = inode->i_size; 436 + __entry->size = i_size_read(inode); 437 437 __entry->blocks = inode->i_blocks; 438 438 __entry->from = from; 439 439 ), ··· 1006 1006 __entry->mode = mode; 1007 1007 __entry->offset = offset; 1008 1008 __entry->len = len; 1009 - __entry->size = inode->i_size; 1009 + __entry->size = i_size_read(inode); 1010 1010 __entry->blocks = inode->i_blocks; 1011 1011 __entry->ret = ret; 1012 1012 ),