diff options
| author | Jaegeuk Kim <jaegeuk.kim@samsung.com> | 2013-08-12 16:04:53 +0900 | 
|---|---|---|
| committer | Jaegeuk Kim <jaegeuk.kim@samsung.com> | 2013-08-12 16:04:53 +0900 | 
| commit | 479bd73ac425ff117efeea051077b4277baab52e (patch) | |
| tree | a078a20d6d657f4b77140392be5a6316c96110a3 /fs/proc/array.c | |
| parent | 9c02740c0174932162531a28ba8593e82884a9d7 (diff) | |
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>
Diffstat (limited to 'fs/proc/array.c')
0 files changed, 0 insertions, 0 deletions
