f2fs: Update to proper 3.4 support
http://git.kernel.org/cgit/linux/kernel/git/jaegeuk/f2fs.git/log/?h=linux-3.4
Change-Id: Ica17871e847d4807c7ef24ea77dd4bff5451f5c7
Conflicts:
fs/f2fs/f2fs.h
diff --git a/fs/f2fs/inode.c b/fs/f2fs/inode.c
index eb48128..679ee78 100644
--- a/fs/f2fs/inode.c
+++ b/fs/f2fs/inode.c
@@ -12,7 +12,6 @@
#include <linux/f2fs_fs.h>
#include <linux/buffer_head.h>
#include <linux/writeback.h>
-#include <linux/bitops.h>
#include "f2fs.h"
#include "node.h"
@@ -22,20 +21,20 @@
void f2fs_set_inode_flags(struct inode *inode)
{
unsigned int flags = F2FS_I(inode)->i_flags;
- unsigned int new_fl = 0;
+
+ inode->i_flags &= ~(S_SYNC | S_APPEND | S_IMMUTABLE |
+ S_NOATIME | S_DIRSYNC);
if (flags & FS_SYNC_FL)
- new_fl |= S_SYNC;
+ inode->i_flags |= S_SYNC;
if (flags & FS_APPEND_FL)
- new_fl |= S_APPEND;
+ inode->i_flags |= S_APPEND;
if (flags & FS_IMMUTABLE_FL)
- new_fl |= S_IMMUTABLE;
+ inode->i_flags |= S_IMMUTABLE;
if (flags & FS_NOATIME_FL)
- new_fl |= S_NOATIME;
+ inode->i_flags |= S_NOATIME;
if (flags & FS_DIRSYNC_FL)
- new_fl |= S_DIRSYNC;
- set_mask_bits(&inode->i_flags,
- S_SYNC|S_APPEND|S_IMMUTABLE|S_NOATIME|S_DIRSYNC, new_fl);
+ inode->i_flags |= S_DIRSYNC;
}
static void __get_inode_rdev(struct inode *inode, struct f2fs_inode *ri)
@@ -289,4 +288,5 @@
no_delete:
end_writeback(inode);
+ invalidate_mapping_pages(NODE_MAPPING(sbi), inode->i_ino, inode->i_ino);
}