summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--fs/ext4/inode.c4
-rw-r--r--fs/fs-writeback.c9
-rw-r--r--fs/gfs2/super.c2
-rw-r--r--include/linux/fs.h3
4 files changed, 8 insertions, 10 deletions
diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c
index c94780075b04..6d2a18991fcb 100644
--- a/fs/ext4/inode.c
+++ b/fs/ext4/inode.c
@@ -5032,12 +5032,12 @@ static int other_inode_match(struct inode * inode, unsigned long ino,
5032 5032
5033 if ((inode->i_ino != ino) || 5033 if ((inode->i_ino != ino) ||
5034 (inode->i_state & (I_FREEING | I_WILL_FREE | I_NEW | 5034 (inode->i_state & (I_FREEING | I_WILL_FREE | I_NEW |
5035 I_DIRTY_SYNC | I_DIRTY_DATASYNC)) || 5035 I_DIRTY_INODE)) ||
5036 ((inode->i_state & I_DIRTY_TIME) == 0)) 5036 ((inode->i_state & I_DIRTY_TIME) == 0))
5037 return 0; 5037 return 0;
5038 spin_lock(&inode->i_lock); 5038 spin_lock(&inode->i_lock);
5039 if (((inode->i_state & (I_FREEING | I_WILL_FREE | I_NEW | 5039 if (((inode->i_state & (I_FREEING | I_WILL_FREE | I_NEW |
5040 I_DIRTY_SYNC | I_DIRTY_DATASYNC)) == 0) && 5040 I_DIRTY_INODE)) == 0) &&
5041 (inode->i_state & I_DIRTY_TIME)) { 5041 (inode->i_state & I_DIRTY_TIME)) {
5042 struct ext4_inode_info *ei = EXT4_I(inode); 5042 struct ext4_inode_info *ei = EXT4_I(inode);
5043 5043
diff --git a/fs/fs-writeback.c b/fs/fs-writeback.c
index d4d04fee568a..1280f915079b 100644
--- a/fs/fs-writeback.c
+++ b/fs/fs-writeback.c
@@ -1343,7 +1343,7 @@ __writeback_single_inode(struct inode *inode, struct writeback_control *wbc)
1343 1343
1344 dirty = inode->i_state & I_DIRTY; 1344 dirty = inode->i_state & I_DIRTY;
1345 if (inode->i_state & I_DIRTY_TIME) { 1345 if (inode->i_state & I_DIRTY_TIME) {
1346 if ((dirty & (I_DIRTY_SYNC | I_DIRTY_DATASYNC)) || 1346 if ((dirty & I_DIRTY_INODE) ||
1347 wbc->sync_mode == WB_SYNC_ALL || 1347 wbc->sync_mode == WB_SYNC_ALL ||
1348 unlikely(inode->i_state & I_DIRTY_TIME_EXPIRED) || 1348 unlikely(inode->i_state & I_DIRTY_TIME_EXPIRED) ||
1349 unlikely(time_after(jiffies, 1349 unlikely(time_after(jiffies,
@@ -2112,7 +2112,6 @@ static noinline void block_dump___mark_inode_dirty(struct inode *inode)
2112 */ 2112 */
2113void __mark_inode_dirty(struct inode *inode, int flags) 2113void __mark_inode_dirty(struct inode *inode, int flags)
2114{ 2114{
2115#define I_DIRTY_INODE (I_DIRTY_SYNC | I_DIRTY_DATASYNC)
2116 struct super_block *sb = inode->i_sb; 2115 struct super_block *sb = inode->i_sb;
2117 int dirtytime; 2116 int dirtytime;
2118 2117
@@ -2122,7 +2121,7 @@ void __mark_inode_dirty(struct inode *inode, int flags)
2122 * Don't do this for I_DIRTY_PAGES - that doesn't actually 2121 * Don't do this for I_DIRTY_PAGES - that doesn't actually
2123 * dirty the inode itself 2122 * dirty the inode itself
2124 */ 2123 */
2125 if (flags & (I_DIRTY_SYNC | I_DIRTY_DATASYNC | I_DIRTY_TIME)) { 2124 if (flags & (I_DIRTY_INODE | I_DIRTY_TIME)) {
2126 trace_writeback_dirty_inode_start(inode, flags); 2125 trace_writeback_dirty_inode_start(inode, flags);
2127 2126
2128 if (sb->s_op->dirty_inode) 2127 if (sb->s_op->dirty_inode)
@@ -2197,7 +2196,7 @@ void __mark_inode_dirty(struct inode *inode, int flags)
2197 if (dirtytime) 2196 if (dirtytime)
2198 inode->dirtied_time_when = jiffies; 2197 inode->dirtied_time_when = jiffies;
2199 2198
2200 if (inode->i_state & (I_DIRTY_INODE | I_DIRTY_PAGES)) 2199 if (inode->i_state & I_DIRTY)
2201 dirty_list = &wb->b_dirty; 2200 dirty_list = &wb->b_dirty;
2202 else 2201 else
2203 dirty_list = &wb->b_dirty_time; 2202 dirty_list = &wb->b_dirty_time;
@@ -2221,8 +2220,6 @@ void __mark_inode_dirty(struct inode *inode, int flags)
2221 } 2220 }
2222out_unlock_inode: 2221out_unlock_inode:
2223 spin_unlock(&inode->i_lock); 2222 spin_unlock(&inode->i_lock);
2224
2225#undef I_DIRTY_INODE
2226} 2223}
2227EXPORT_SYMBOL(__mark_inode_dirty); 2224EXPORT_SYMBOL(__mark_inode_dirty);
2228 2225
diff --git a/fs/gfs2/super.c b/fs/gfs2/super.c
index 620be0521866..cf5c7f3080d2 100644
--- a/fs/gfs2/super.c
+++ b/fs/gfs2/super.c
@@ -800,7 +800,7 @@ static void gfs2_dirty_inode(struct inode *inode, int flags)
800 int need_endtrans = 0; 800 int need_endtrans = 0;
801 int ret; 801 int ret;
802 802
803 if (!(flags & (I_DIRTY_DATASYNC|I_DIRTY_SYNC))) 803 if (!(flags & I_DIRTY_INODE))
804 return; 804 return;
805 if (unlikely(test_bit(SDF_SHUTDOWN, &sdp->sd_flags))) 805 if (unlikely(test_bit(SDF_SHUTDOWN, &sdp->sd_flags)))
806 return; 806 return;
diff --git a/include/linux/fs.h b/include/linux/fs.h
index d7b2caadb292..00da24bc0350 100644
--- a/include/linux/fs.h
+++ b/include/linux/fs.h
@@ -2014,7 +2014,8 @@ static inline void init_sync_kiocb(struct kiocb *kiocb, struct file *filp)
2014#define I_WB_SWITCH (1 << 13) 2014#define I_WB_SWITCH (1 << 13)
2015#define I_OVL_INUSE (1 << 14) 2015#define I_OVL_INUSE (1 << 14)
2016 2016
2017#define I_DIRTY (I_DIRTY_SYNC | I_DIRTY_DATASYNC | I_DIRTY_PAGES) 2017#define I_DIRTY_INODE (I_DIRTY_SYNC | I_DIRTY_DATASYNC)
2018#define I_DIRTY (I_DIRTY_INODE | I_DIRTY_PAGES)
2018#define I_DIRTY_ALL (I_DIRTY | I_DIRTY_TIME) 2019#define I_DIRTY_ALL (I_DIRTY | I_DIRTY_TIME)
2019 2020
2020extern void __mark_inode_dirty(struct inode *, int); 2021extern void __mark_inode_dirty(struct inode *, int);