linux/fs/f2fs
Jaegeuk Kim 479bd73ac4 f2fs: should cover i_xattr_nid with its xattr node page lock
Previously, f2fs_setxattr assigns i_xattr_nid in the inode page inconsistently.

The scenario is:

= Thread 1 =         = Thread 2 =     = fi->i_xattr_nid =  = on-disk nid =

f2fs_setxattr                                   0                 0
  new_node_page                                 X                 0
                   sync_inode_page              X                 X
                   checkpoint                   X                 X -.
    grab_cache_page                             X                 X  |
--> allocate a new xattr node block or -ENOSPC      <----------------'

At this moment, the checkpoint stores inconsistent data where the inode has
i_xattr_nid but actual xattr node block is not allocated yet.

So, we should assign the real i_xattr_nid only after its xattr node block is
allocated.

Signed-off-by: Jaegeuk Kim <jaegeuk.kim@samsung.com>
2013-08-12 16:04:53 +09:00
..
acl.c f2fs: support xattr security labels 2013-06-11 16:01:03 +09:00
acl.h f2fs: adjust kernel coding style 2012-12-11 13:43:42 +09:00
checkpoint.c f2fs: introduce cur_cp_version function to reduce code size 2013-08-09 15:25:37 +09:00
data.c f2fs: clean up the needless end 'return' of void function 2013-08-12 11:49:22 +09:00
debug.c f2fs: use seq_puts()/seq_putc() rather than seq_printf() where possible 2013-07-30 15:17:03 +09:00
dir.c f2fs: fix handling orphan inodes 2013-07-30 15:17:03 +09:00
f2fs.h f2fs: introduce cur_cp_version function to reduce code size 2013-08-09 15:25:37 +09:00
file.c f2fs: introduce cur_cp_version function to reduce code size 2013-08-09 15:25:37 +09:00
gc.c f2fs: fix a deadlock in fsync 2013-08-06 22:00:36 +09:00
gc.h f2fs: add sysfs entries to select the gc policy 2013-08-06 22:00:18 +09:00
hash.c f2fs: unify string length declarations and usage 2012-12-28 11:27:53 +09:00
inode.c f2fs: fix a deadlock in fsync 2013-08-06 22:00:36 +09:00
Kconfig f2fs: support xattr security labels 2013-06-11 16:01:03 +09:00
Makefile f2fs: update Kconfig and Makefile 2012-12-11 13:43:42 +09:00
namei.c f2fs: fix handling orphan inodes 2013-07-30 15:17:03 +09:00
node.c f2fs: should cover i_xattr_nid with its xattr node page lock 2013-08-12 16:04:53 +09:00
node.h f2fs: fix the use of XATTR_NODE_OFFSET 2013-08-09 14:57:56 +09:00
recovery.c f2fs: introduce cur_cp_version function to reduce code size 2013-08-09 15:25:37 +09:00
segment.c f2fs: clean up the needless end 'return' of void function 2013-08-12 11:49:22 +09:00
segment.h f2fs: modify the number of issued pages to merge IOs 2013-04-30 12:07:32 +09:00
super.c f2fs: clean up the needless end 'return' of void function 2013-08-12 11:49:22 +09:00
xattr.c f2fs: should cover i_xattr_nid with its xattr node page lock 2013-08-12 16:04:53 +09:00
xattr.h f2fs: support xattr security labels 2013-06-11 16:01:03 +09:00