[RFC PATCH 70/79] mm: add struct address_space to mark_buffer_dirty()

From: jglisse
Date: Wed Apr 04 2018 - 15:22:14 EST


From: JÃrÃme Glisse <jglisse@xxxxxxxxxx>

For the holy crusade to stop relying on struct page mapping field, add
struct address_space to mark_buffer_dirty() arguments.

<---------------------------------------------------------------------
@@
identifier I1;
type T1;
@@
void
-mark_buffer_dirty(T1 I1)
+mark_buffer_dirty(struct address_space *_mapping, T1 I1)
{...}

@@
type T1;
@@
void
-mark_buffer_dirty(T1)
+mark_buffer_dirty(struct address_space *, T1)
;

@@
identifier I1;
type T1;
@@
void
-mark_buffer_dirty(T1 I1)
+mark_buffer_dirty(struct address_space *, T1)
;

@@
expression E1;
@@
-mark_buffer_dirty(E1)
+mark_buffer_dirty(NULL, E1)
--------------------------------------------------------------------->

Signed-off-by: JÃrÃme Glisse <jglisse@xxxxxxxxxx>
CC: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Cc: Alexander Viro <viro@xxxxxxxxxxxxxxxxxx>
Cc: linux-fsdevel@xxxxxxxxxxxxxxx
Cc: Tejun Heo <tj@xxxxxxxxxx>
Cc: Jan Kara <jack@xxxxxxx>
Cc: Josef Bacik <jbacik@xxxxxx>
Cc: Mel Gorman <mgorman@xxxxxxxxxxxxxxxxxxx>
---
fs/adfs/dir_f.c | 2 +-
fs/affs/bitmap.c | 6 +++---
fs/affs/super.c | 2 +-
fs/bfs/file.c | 2 +-
fs/bfs/inode.c | 4 ++--
fs/buffer.c | 12 ++++++------
fs/ext2/balloc.c | 6 +++---
fs/ext2/ialloc.c | 8 ++++----
fs/ext2/inode.c | 2 +-
fs/ext2/super.c | 4 ++--
fs/ext2/xattr.c | 8 ++++----
fs/ext4/ext4_jbd2.c | 4 ++--
fs/ext4/inode.c | 4 ++--
fs/ext4/mmp.c | 2 +-
fs/ext4/resize.c | 2 +-
fs/ext4/super.c | 2 +-
fs/fat/inode.c | 4 ++--
fs/fat/misc.c | 2 +-
fs/gfs2/bmap.c | 4 ++--
fs/gfs2/lops.c | 6 +++---
fs/hfs/mdb.c | 10 +++++-----
fs/hpfs/anode.c | 34 +++++++++++++++++-----------------
fs/hpfs/buffer.c | 8 ++++----
fs/hpfs/dnode.c | 4 ++--
fs/hpfs/ea.c | 4 ++--
fs/hpfs/inode.c | 2 +-
fs/hpfs/namei.c | 10 +++++-----
fs/hpfs/super.c | 6 +++---
fs/jbd2/recovery.c | 2 +-
fs/jbd2/transaction.c | 2 +-
fs/jfs/jfs_imap.c | 2 +-
fs/jfs/jfs_mount.c | 2 +-
fs/jfs/resize.c | 6 +++---
fs/jfs/super.c | 2 +-
fs/minix/bitmap.c | 10 +++++-----
fs/minix/inode.c | 12 ++++++------
fs/nilfs2/alloc.c | 12 ++++++------
fs/nilfs2/btnode.c | 4 ++--
fs/nilfs2/btree.c | 38 +++++++++++++++++++-------------------
fs/nilfs2/cpfile.c | 24 ++++++++++++------------
fs/nilfs2/dat.c | 4 ++--
fs/nilfs2/gcinode.c | 2 +-
fs/nilfs2/ifile.c | 4 ++--
fs/nilfs2/inode.c | 2 +-
fs/nilfs2/ioctl.c | 2 +-
fs/nilfs2/mdt.c | 2 +-
fs/nilfs2/segment.c | 4 ++--
fs/nilfs2/sufile.c | 26 +++++++++++++-------------
fs/ntfs/file.c | 8 ++++----
fs/ntfs/super.c | 2 +-
fs/ocfs2/alloc.c | 2 +-
fs/ocfs2/aops.c | 4 ++--
fs/ocfs2/inode.c | 2 +-
fs/omfs/bitmap.c | 6 +++---
fs/omfs/dir.c | 8 ++++----
fs/omfs/file.c | 4 ++--
fs/omfs/inode.c | 4 ++--
fs/reiserfs/file.c | 2 +-
fs/reiserfs/inode.c | 4 ++--
fs/reiserfs/journal.c | 10 +++++-----
fs/reiserfs/resize.c | 2 +-
fs/sysv/balloc.c | 2 +-
fs/sysv/ialloc.c | 2 +-
fs/sysv/inode.c | 8 ++++----
fs/sysv/sysv.h | 4 ++--
fs/udf/balloc.c | 6 +++---
fs/udf/inode.c | 2 +-
fs/udf/partition.c | 4 ++--
fs/udf/super.c | 8 ++++----
fs/ufs/balloc.c | 4 ++--
fs/ufs/ialloc.c | 4 ++--
fs/ufs/inode.c | 8 ++++----
fs/ufs/util.c | 2 +-
include/linux/buffer_head.h | 2 +-
74 files changed, 220 insertions(+), 220 deletions(-)

diff --git a/fs/adfs/dir_f.c b/fs/adfs/dir_f.c
index 0fbfd0b04ae0..3d92f8d187bc 100644
--- a/fs/adfs/dir_f.c
+++ b/fs/adfs/dir_f.c
@@ -434,7 +434,7 @@ adfs_f_update(struct adfs_dir *dir, struct object_info *obj)
}
#endif
for (i = dir->nr_buffers - 1; i >= 0; i--)
- mark_buffer_dirty(dir->bh[i]);
+ mark_buffer_dirty(NULL, dir->bh[i]);

ret = 0;
out:
diff --git a/fs/affs/bitmap.c b/fs/affs/bitmap.c
index 5ba9ef2742f6..59b352075505 100644
--- a/fs/affs/bitmap.c
+++ b/fs/affs/bitmap.c
@@ -79,7 +79,7 @@ affs_free_block(struct super_block *sb, u32 block)
tmp = be32_to_cpu(*(__be32 *)bh->b_data);
*(__be32 *)bh->b_data = cpu_to_be32(tmp - mask);

- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
affs_mark_sb_dirty(sb);
bm->bm_free++;

@@ -223,7 +223,7 @@ affs_alloc_block(struct inode *inode, u32 goal)
tmp = be32_to_cpu(*(__be32 *)bh->b_data);
*(__be32 *)bh->b_data = cpu_to_be32(tmp + mask);

- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
affs_mark_sb_dirty(sb);

mutex_unlock(&sbi->s_bmlock);
@@ -338,7 +338,7 @@ int affs_init_bitmap(struct super_block *sb, int *flags)
((__be32 *)bh->b_data)[offset] = 0;
((__be32 *)bh->b_data)[0] = 0;
((__be32 *)bh->b_data)[0] = cpu_to_be32(-affs_checksum_block(sb, bh));
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);

/* recalculate bitmap count for last block */
bm--;
diff --git a/fs/affs/super.c b/fs/affs/super.c
index e602619aed9d..515388985607 100644
--- a/fs/affs/super.c
+++ b/fs/affs/super.c
@@ -40,7 +40,7 @@ affs_commit_super(struct super_block *sb, int wait)
affs_fix_checksum(sb, bh);
unlock_buffer(bh);

- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
if (wait)
sync_dirty_buffer(bh);
}
diff --git a/fs/bfs/file.c b/fs/bfs/file.c
index 6d66cc137bc3..e74e1b72df80 100644
--- a/fs/bfs/file.c
+++ b/fs/bfs/file.c
@@ -40,7 +40,7 @@ static int bfs_move_block(unsigned long from, unsigned long to,
return -EIO;
new = sb_getblk(sb, to);
memcpy(new->b_data, bh->b_data, bh->b_size);
- mark_buffer_dirty(new);
+ mark_buffer_dirty(NULL, new);
bforget(sb, bh);
brelse(new);
return 0;
diff --git a/fs/bfs/inode.c b/fs/bfs/inode.c
index 9a69392f1fb3..a41edad61187 100644
--- a/fs/bfs/inode.c
+++ b/fs/bfs/inode.c
@@ -149,7 +149,7 @@ static int bfs_write_inode(struct inode *inode, struct writeback_control *wbc)
di->i_eblock = cpu_to_le32(BFS_I(inode)->i_eblock);
di->i_eoffset = cpu_to_le32(i_sblock * BFS_BSIZE + inode->i_size - 1);

- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
if (wbc->sync_mode == WB_SYNC_ALL) {
sync_dirty_buffer(bh);
if (buffer_req(bh) && !buffer_uptodate(bh))
@@ -185,7 +185,7 @@ static void bfs_evict_inode(struct inode *inode)
mutex_lock(&info->bfs_lock);
/* clear on-disk inode */
memset(di, 0, sizeof(struct bfs_inode));
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
brelse(bh);

if (bi->i_dsk_ino) {
diff --git a/fs/buffer.c b/fs/buffer.c
index 27b19c629308..24872b077269 100644
--- a/fs/buffer.c
+++ b/fs/buffer.c
@@ -574,7 +574,7 @@ void mark_buffer_dirty_inode(struct buffer_head *bh, struct inode *inode)

buffer_mapping = fs_page_mapping_get_with_bh(bh->b_page, bh);

- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
if (!mapping->private_data) {
mapping->private_data = buffer_mapping;
} else {
@@ -1102,7 +1102,7 @@ __getblk_slow(struct block_device *bdev, sector_t block,
* mark_buffer_dirty() is atomic. It takes bh->b_page->mapping->private_lock,
* mapping->tree_lock and mapping->host->i_lock.
*/
-void mark_buffer_dirty(struct buffer_head *bh)
+void mark_buffer_dirty(struct address_space *_mapping, struct buffer_head *bh)
{
WARN_ON_ONCE(!buffer_uptodate(bh));

@@ -1891,7 +1891,7 @@ void page_zero_new_buffers(struct address_space *buffer, struct page *page,
}

clear_buffer_new(bh);
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
}
}

@@ -2006,7 +2006,7 @@ int __block_write_begin_int(struct address_space *mapping, struct page *page,
if (PageUptodate(page)) {
clear_buffer_new(bh);
set_buffer_uptodate(bh);
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
continue;
}
if (block_end > to || block_start < from)
@@ -2068,7 +2068,7 @@ static int __block_commit_write(struct inode *inode, struct page *page,
partial = 1;
} else {
set_buffer_uptodate(bh);
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
}
clear_buffer_new(bh);

@@ -2937,7 +2937,7 @@ int block_truncate_page(struct address_space *mapping,
}

zero_user(page, offset, length);
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
err = 0;

unlock:
diff --git a/fs/ext2/balloc.c b/fs/ext2/balloc.c
index 33db13365c5e..e9e4a9f477fe 100644
--- a/fs/ext2/balloc.c
+++ b/fs/ext2/balloc.c
@@ -172,7 +172,7 @@ static void group_adjust_blocks(struct super_block *sb, int group_no,
free_blocks = le16_to_cpu(desc->bg_free_blocks_count);
desc->bg_free_blocks_count = cpu_to_le16(free_blocks + count);
spin_unlock(sb_bgl_lock(sbi, group_no));
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
}
}

@@ -547,7 +547,7 @@ void ext2_free_blocks (struct inode * inode, unsigned long block,
}
}

- mark_buffer_dirty(bitmap_bh);
+ mark_buffer_dirty(NULL, bitmap_bh);
if (sb->s_flags & SB_SYNCHRONOUS)
sync_dirty_buffer(bitmap_bh);

@@ -1423,7 +1423,7 @@ ext2_fsblk_t ext2_new_blocks(struct inode *inode, ext2_fsblk_t goal,
group_adjust_blocks(sb, group_no, gdp, gdp_bh, -num);
percpu_counter_sub(&sbi->s_freeblocks_counter, num);

- mark_buffer_dirty(bitmap_bh);
+ mark_buffer_dirty(NULL, bitmap_bh);
if (sb->s_flags & SB_SYNCHRONOUS)
sync_dirty_buffer(bitmap_bh);

diff --git a/fs/ext2/ialloc.c b/fs/ext2/ialloc.c
index 6484199b35d1..c444c3c1ebcb 100644
--- a/fs/ext2/ialloc.c
+++ b/fs/ext2/ialloc.c
@@ -82,7 +82,7 @@ static void ext2_release_inode(struct super_block *sb, int group, int dir)
spin_unlock(sb_bgl_lock(EXT2_SB(sb), group));
if (dir)
percpu_counter_dec(&EXT2_SB(sb)->s_dirs_counter);
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
}

/*
@@ -144,7 +144,7 @@ void ext2_free_inode (struct inode * inode)
"bit already cleared for inode %lu", ino);
else
ext2_release_inode(sb, block_group, is_directory);
- mark_buffer_dirty(bitmap_bh);
+ mark_buffer_dirty(NULL, bitmap_bh);
if (sb->s_flags & SB_SYNCHRONOUS)
sync_dirty_buffer(bitmap_bh);

@@ -516,7 +516,7 @@ struct inode *ext2_new_inode(struct inode *dir, umode_t mode,
err = -ENOSPC;
goto fail;
got:
- mark_buffer_dirty(bitmap_bh);
+ mark_buffer_dirty(NULL, bitmap_bh);
if (sb->s_flags & SB_SYNCHRONOUS)
sync_dirty_buffer(bitmap_bh);
brelse(bitmap_bh);
@@ -547,7 +547,7 @@ struct inode *ext2_new_inode(struct inode *dir, umode_t mode,
}
spin_unlock(sb_bgl_lock(sbi, group));

- mark_buffer_dirty(bh2);
+ mark_buffer_dirty(NULL, bh2);
if (test_opt(sb, GRPID)) {
inode->i_mode = mode;
inode->i_uid = current_fsuid();
diff --git a/fs/ext2/inode.c b/fs/ext2/inode.c
index bc12273e393a..4c1782d0d0c0 100644
--- a/fs/ext2/inode.c
+++ b/fs/ext2/inode.c
@@ -1621,7 +1621,7 @@ static int __ext2_write_inode(struct inode *inode, int do_sync)
}
} else for (n = 0; n < EXT2_N_BLOCKS; n++)
raw_inode->i_block[n] = ei->i_data[n];
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
if (do_sync) {
sync_dirty_buffer(bh);
if (buffer_req(bh) && !buffer_uptodate(bh)) {
diff --git a/fs/ext2/super.c b/fs/ext2/super.c
index 7666c065b96f..62cab57b448f 100644
--- a/fs/ext2/super.c
+++ b/fs/ext2/super.c
@@ -1247,7 +1247,7 @@ void ext2_sync_super(struct super_block *sb, struct ext2_super_block *es,
es->s_wtime = cpu_to_le32(get_seconds());
/* unlock before we do IO */
spin_unlock(&EXT2_SB(sb)->s_lock);
- mark_buffer_dirty(EXT2_SB(sb)->s_sbh);
+ mark_buffer_dirty(NULL, EXT2_SB(sb)->s_sbh);
if (wait)
sync_dirty_buffer(EXT2_SB(sb)->s_sbh);
}
@@ -1562,7 +1562,7 @@ static ssize_t ext2_quota_write(struct super_block *sb, int type,
memcpy(bh->b_data+offset, data, tocopy);
flush_dcache_page(bh->b_page);
set_buffer_uptodate(bh);
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
unlock_buffer(bh);
brelse(bh);
offset = 0;
diff --git a/fs/ext2/xattr.c b/fs/ext2/xattr.c
index c77edf9afbce..8f3b1950248b 100644
--- a/fs/ext2/xattr.c
+++ b/fs/ext2/xattr.c
@@ -344,7 +344,7 @@ static void ext2_xattr_update_super_block(struct super_block *sb)
spin_lock(&EXT2_SB(sb)->s_lock);
EXT2_SET_COMPAT_FEATURE(sb, EXT2_FEATURE_COMPAT_EXT_ATTR);
spin_unlock(&EXT2_SB(sb)->s_lock);
- mark_buffer_dirty(EXT2_SB(sb)->s_sbh);
+ mark_buffer_dirty(NULL, EXT2_SB(sb)->s_sbh);
}

/*
@@ -683,7 +683,7 @@ ext2_xattr_set2(struct inode *inode, struct buffer_head *old_bh,

ext2_xattr_update_super_block(sb);
}
- mark_buffer_dirty(new_bh);
+ mark_buffer_dirty(NULL, new_bh);
if (IS_SYNC(inode)) {
sync_dirty_buffer(new_bh);
error = -EIO;
@@ -739,7 +739,7 @@ ext2_xattr_set2(struct inode *inode, struct buffer_head *old_bh,
le32_add_cpu(&HDR(old_bh)->h_refcount, -1);
dquot_free_block_nodirty(inode, 1);
mark_inode_dirty(inode);
- mark_buffer_dirty(old_bh);
+ mark_buffer_dirty(NULL, old_bh);
ea_bdebug(old_bh, "refcount now=%d",
le32_to_cpu(HDR(old_bh)->h_refcount));
}
@@ -809,7 +809,7 @@ ext2_xattr_delete_inode(struct inode *inode)
ea_bdebug(bh, "refcount now=%d",
le32_to_cpu(HDR(bh)->h_refcount));
unlock_buffer(bh);
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
if (IS_SYNC(inode))
sync_dirty_buffer(bh);
dquot_free_block_nodirty(inode, 1);
diff --git a/fs/ext4/ext4_jbd2.c b/fs/ext4/ext4_jbd2.c
index 60fbf5336059..72209e854a19 100644
--- a/fs/ext4/ext4_jbd2.c
+++ b/fs/ext4/ext4_jbd2.c
@@ -302,7 +302,7 @@ int __ext4_handle_dirty_metadata(const char *where, unsigned int line,
if (inode)
mark_buffer_dirty_inode(bh, inode);
else
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
if (inode && inode_needs_sync(inode)) {
sync_dirty_buffer(bh);
if (buffer_req(bh) && !buffer_uptodate(bh)) {
@@ -334,6 +334,6 @@ int __ext4_handle_dirty_super(const char *where, unsigned int line,
ext4_journal_abort_handle(where, line, __func__,
bh, handle, err);
} else
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
return err;
}
diff --git a/fs/ext4/inode.c b/fs/ext4/inode.c
index ef53a57d9768..c0ae0dc7af58 100644
--- a/fs/ext4/inode.c
+++ b/fs/ext4/inode.c
@@ -1202,7 +1202,7 @@ static int ext4_block_write_begin(struct address_space *mapping,
if (PageUptodate(page)) {
clear_buffer_new(bh);
set_buffer_uptodate(bh);
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
continue;
}
if (block_end > to || block_start < from)
@@ -4070,7 +4070,7 @@ static int __ext4_block_zero_page_range(handle_t *handle,
err = ext4_handle_dirty_metadata(handle, inode, bh);
} else {
err = 0;
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
if (ext4_should_order_data(inode))
err = ext4_jbd2_inode_add_write(handle, inode);
}
diff --git a/fs/ext4/mmp.c b/fs/ext4/mmp.c
index 27b9a76a0dfa..6fcd8d624ef7 100644
--- a/fs/ext4/mmp.c
+++ b/fs/ext4/mmp.c
@@ -49,7 +49,7 @@ static int write_mmp_block(struct super_block *sb, struct buffer_head *bh)
*/
sb_start_write(sb);
ext4_mmp_csum_set(sb, mmp);
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
lock_buffer(bh);
bh->b_end_io = end_buffer_write_sync;
get_bh(bh);
diff --git a/fs/ext4/resize.c b/fs/ext4/resize.c
index b6bec270a8e4..398cd8c7dd40 100644
--- a/fs/ext4/resize.c
+++ b/fs/ext4/resize.c
@@ -1160,7 +1160,7 @@ static void update_backups(struct super_block *sb, sector_t blk_off, char *data,
"forcing fsck on next reboot", group, err);
sbi->s_mount_state &= ~EXT4_VALID_FS;
sbi->s_es->s_state &= cpu_to_le16(~EXT4_VALID_FS);
- mark_buffer_dirty(sbi->s_sbh);
+ mark_buffer_dirty(NULL, sbi->s_sbh);
}
}

diff --git a/fs/ext4/super.c b/fs/ext4/super.c
index cf2b74137fb2..ebef69e45f74 100644
--- a/fs/ext4/super.c
+++ b/fs/ext4/super.c
@@ -4738,7 +4738,7 @@ static int ext4_commit_super(struct super_block *sb, int sync)
clear_buffer_write_io_error(sbh);
set_buffer_uptodate(sbh);
}
- mark_buffer_dirty(sbh);
+ mark_buffer_dirty(NULL, sbh);
if (sync) {
unlock_buffer(sbh);
error = __sync_dirty_buffer(sbh,
diff --git a/fs/fat/inode.c b/fs/fat/inode.c
index 9e6bc6364468..a5cac466caf2 100644
--- a/fs/fat/inode.c
+++ b/fs/fat/inode.c
@@ -695,7 +695,7 @@ static void fat_set_state(struct super_block *sb,
b->fat16.state &= ~FAT_STATE_DIRTY;
}

- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
sync_dirty_buffer(bh);
brelse(bh);
}
@@ -875,7 +875,7 @@ static int __fat_write_inode(struct inode *inode, int wait)
&raw_entry->adate, NULL);
}
spin_unlock(&sbi->inode_hash_lock);
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
err = 0;
if (wait)
err = sync_dirty_buffer(bh);
diff --git a/fs/fat/misc.c b/fs/fat/misc.c
index f9bdc1e01c98..2f1a027684c4 100644
--- a/fs/fat/misc.c
+++ b/fs/fat/misc.c
@@ -85,7 +85,7 @@ int fat_clusters_flush(struct super_block *sb)
fsinfo->free_clusters = cpu_to_le32(sbi->free_clusters);
if (sbi->prev_free != -1)
fsinfo->next_cluster = cpu_to_le32(sbi->prev_free);
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
}
brelse(bh);

diff --git a/fs/gfs2/bmap.c b/fs/gfs2/bmap.c
index 12e10758b0f2..32028225306a 100644
--- a/fs/gfs2/bmap.c
+++ b/fs/gfs2/bmap.c
@@ -90,7 +90,7 @@ static int gfs2_unstuffer_page(struct gfs2_inode *ip, struct buffer_head *dibh,

set_buffer_uptodate(bh);
if (!gfs2_is_jdata(ip))
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
if (!gfs2_is_writeback(ip))
gfs2_trans_add_data(ip->i_gl, bh);

@@ -955,7 +955,7 @@ static int gfs2_block_zero_range(struct inode *inode, loff_t from,
gfs2_trans_add_data(ip->i_gl, bh);

zero_user(page, offset, length);
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
unlock:
unlock_page(page);
put_page(page);
diff --git a/fs/gfs2/lops.c b/fs/gfs2/lops.c
index 3b672378d358..1c7dbf3b1227 100644
--- a/fs/gfs2/lops.c
+++ b/fs/gfs2/lops.c
@@ -105,7 +105,7 @@ static void gfs2_unpin(struct gfs2_sbd *sdp, struct buffer_head *bh,
BUG_ON(!buffer_pinned(bh));

lock_buffer(bh);
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
clear_buffer_pinned(bh);

if (buffer_is_rgrp(bd))
@@ -558,7 +558,7 @@ static int buf_lo_scan_elements(struct gfs2_jdesc *jd, unsigned int start,
if (gfs2_meta_check(sdp, bh_ip))
error = -EIO;
else
- mark_buffer_dirty(bh_ip);
+ mark_buffer_dirty(NULL, bh_ip);

brelse(bh_log);
brelse(bh_ip);
@@ -797,7 +797,7 @@ static int databuf_lo_scan_elements(struct gfs2_jdesc *jd, unsigned int start,
__be32 *eptr = (__be32 *)bh_ip->b_data;
*eptr = cpu_to_be32(GFS2_MAGIC);
}
- mark_buffer_dirty(bh_ip);
+ mark_buffer_dirty(NULL, bh_ip);

brelse(bh_log);
brelse(bh_ip);
diff --git a/fs/hfs/mdb.c b/fs/hfs/mdb.c
index 460281b1299e..6be25d949b5d 100644
--- a/fs/hfs/mdb.c
+++ b/fs/hfs/mdb.c
@@ -218,7 +218,7 @@ int hfs_mdb_get(struct super_block *sb)
be32_add_cpu(&mdb->drWrCnt, 1);
mdb->drLsMod = hfs_mtime();

- mark_buffer_dirty(HFS_SB(sb)->mdb_bh);
+ mark_buffer_dirty(NULL, HFS_SB(sb)->mdb_bh);
sync_dirty_buffer(HFS_SB(sb)->mdb_bh);
}

@@ -274,7 +274,7 @@ void hfs_mdb_commit(struct super_block *sb)
mdb->drDirCnt = cpu_to_be32(HFS_SB(sb)->folder_count);

/* write MDB to disk */
- mark_buffer_dirty(HFS_SB(sb)->mdb_bh);
+ mark_buffer_dirty(NULL, HFS_SB(sb)->mdb_bh);
}

/* write the backup MDB, not returning until it is written.
@@ -293,7 +293,7 @@ void hfs_mdb_commit(struct super_block *sb)
HFS_SB(sb)->alt_mdb->drAtrb &= cpu_to_be16(~HFS_SB_ATTRIB_INCNSTNT);
unlock_buffer(HFS_SB(sb)->alt_mdb_bh);

- mark_buffer_dirty(HFS_SB(sb)->alt_mdb_bh);
+ mark_buffer_dirty(NULL, HFS_SB(sb)->alt_mdb_bh);
sync_dirty_buffer(HFS_SB(sb)->alt_mdb_bh);
}

@@ -320,7 +320,7 @@ void hfs_mdb_commit(struct super_block *sb)
memcpy(bh->b_data + off, ptr, len);
unlock_buffer(bh);

- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
brelse(bh);
block++;
off = 0;
@@ -338,7 +338,7 @@ void hfs_mdb_close(struct super_block *sb)
return;
HFS_SB(sb)->mdb->drAtrb |= cpu_to_be16(HFS_SB_ATTRIB_UNMNT);
HFS_SB(sb)->mdb->drAtrb &= cpu_to_be16(~HFS_SB_ATTRIB_INCNSTNT);
- mark_buffer_dirty(HFS_SB(sb)->mdb_bh);
+ mark_buffer_dirty(NULL, HFS_SB(sb)->mdb_bh);
}

/*
diff --git a/fs/hpfs/anode.c b/fs/hpfs/anode.c
index c14c9a035ee0..38944a8cc677 100644
--- a/fs/hpfs/anode.c
+++ b/fs/hpfs/anode.c
@@ -86,7 +86,7 @@ secno hpfs_add_sector_to_btree(struct super_block *s, secno node, int fnod, unsi
if (bp_internal(btree)) {
a = le32_to_cpu(btree->u.internal[n].down);
btree->u.internal[n].file_secno = cpu_to_le32(-1);
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
brelse(bh);
if (hpfs_sb(s)->sb_chk)
if (hpfs_stop_cycles(s, a, &c1, &c2, "hpfs_add_sector_to_btree #1")) return -1;
@@ -104,7 +104,7 @@ secno hpfs_add_sector_to_btree(struct super_block *s, secno node, int fnod, unsi
}
if (hpfs_alloc_if_possible(s, se = le32_to_cpu(btree->u.external[n].disk_secno) + le32_to_cpu(btree->u.external[n].length))) {
le32_add_cpu(&btree->u.external[n].length, 1);
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
brelse(bh);
return se;
}
@@ -141,7 +141,7 @@ secno hpfs_add_sector_to_btree(struct super_block *s, secno node, int fnod, unsi
btree->first_free = cpu_to_le16((char *)&(btree->u.internal[1]) - (char *)btree);
btree->u.internal[0].file_secno = cpu_to_le32(-1);
btree->u.internal[0].down = cpu_to_le32(na);
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
} else if (!(ranode = hpfs_alloc_anode(s, /*a*/0, &ra, &bh2))) {
brelse(bh);
brelse(bh1);
@@ -158,7 +158,7 @@ secno hpfs_add_sector_to_btree(struct super_block *s, secno node, int fnod, unsi
btree->u.external[n].disk_secno = cpu_to_le32(se);
btree->u.external[n].file_secno = cpu_to_le32(fs);
btree->u.external[n].length = cpu_to_le32(1);
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
brelse(bh);
if ((a == node && fnod) || na == -1) return se;
c2 = 0;
@@ -179,7 +179,7 @@ secno hpfs_add_sector_to_btree(struct super_block *s, secno node, int fnod, unsi
btree->u.internal[n].file_secno = cpu_to_le32(-1);
btree->u.internal[n].down = cpu_to_le32(na);
btree->u.internal[n-1].file_secno = cpu_to_le32(fs);
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
brelse(bh);
brelse(bh2);
hpfs_free_sectors(s, ra, 1);
@@ -189,14 +189,14 @@ secno hpfs_add_sector_to_btree(struct super_block *s, secno node, int fnod, unsi
anode->btree.flags |= BP_fnode_parent;
else
anode->btree.flags &= ~BP_fnode_parent;
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
brelse(bh);
}
return se;
}
up = up != node ? le32_to_cpu(anode->up) : -1;
btree->u.internal[btree->n_used_nodes - 1].file_secno = cpu_to_le32(/*fs*/-1);
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
brelse(bh);
a = na;
if ((new_anode = hpfs_alloc_anode(s, a, &na, &bh))) {
@@ -208,11 +208,11 @@ secno hpfs_add_sector_to_btree(struct super_block *s, secno node, int fnod, unsi
anode->btree.first_free = cpu_to_le16(16);
anode->btree.u.internal[0].down = cpu_to_le32(a);
anode->btree.u.internal[0].file_secno = cpu_to_le32(-1);
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
brelse(bh);
if ((anode = hpfs_map_anode(s, a, &bh))) {
anode->up = cpu_to_le32(na);
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
brelse(bh);
}
} else na = a;
@@ -221,7 +221,7 @@ secno hpfs_add_sector_to_btree(struct super_block *s, secno node, int fnod, unsi
anode->up = cpu_to_le32(node);
if (fnod)
anode->btree.flags |= BP_fnode_parent;
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
brelse(bh);
}
if (!fnod) {
@@ -247,7 +247,7 @@ secno hpfs_add_sector_to_btree(struct super_block *s, secno node, int fnod, unsi
if ((unode = hpfs_map_anode(s, le32_to_cpu(ranode->u.internal[n].down), &bh1))) {
unode->up = cpu_to_le32(ra);
unode->btree.flags &= ~BP_fnode_parent;
- mark_buffer_dirty(bh1);
+ mark_buffer_dirty(NULL, bh1);
brelse(bh1);
}
}
@@ -259,9 +259,9 @@ secno hpfs_add_sector_to_btree(struct super_block *s, secno node, int fnod, unsi
btree->u.internal[0].down = cpu_to_le32(ra);
btree->u.internal[1].file_secno = cpu_to_le32(-1);
btree->u.internal[1].down = cpu_to_le32(na);
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
brelse(bh);
- mark_buffer_dirty(bh2);
+ mark_buffer_dirty(NULL, bh2);
brelse(bh2);
return se;
}
@@ -375,7 +375,7 @@ int hpfs_ea_write(struct super_block *s, secno a, int ano, unsigned pos,
return -1;
l = 0x200 - (pos & 0x1ff); if (l > len) l = len;
memcpy(data + (pos & 0x1ff), buf, l);
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
brelse(bh);
buf += l; pos += l; len -= l;
}
@@ -419,7 +419,7 @@ void hpfs_truncate_btree(struct super_block *s, secno f, int fno, unsigned secs)
btree->n_used_nodes = 0;
btree->first_free = cpu_to_le16(8);
btree->flags &= ~BP_internal;
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
} else hpfs_free_sectors(s, f, 1);
brelse(bh);
return;
@@ -437,7 +437,7 @@ void hpfs_truncate_btree(struct super_block *s, secno f, int fno, unsigned secs)
btree->n_used_nodes = i + 1;
btree->n_free_nodes = nodes - btree->n_used_nodes;
btree->first_free = cpu_to_le16(8 + 8 * btree->n_used_nodes);
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
if (btree->u.internal[i].file_secno == cpu_to_le32(secs)) {
brelse(bh);
return;
@@ -471,7 +471,7 @@ void hpfs_truncate_btree(struct super_block *s, secno f, int fno, unsigned secs)
btree->n_used_nodes = i + 1;
btree->n_free_nodes = nodes - btree->n_used_nodes;
btree->first_free = cpu_to_le16(8 + 12 * btree->n_used_nodes);
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
brelse(bh);
}

diff --git a/fs/hpfs/buffer.c b/fs/hpfs/buffer.c
index e285d6b3bba4..dbb0a4d72bc8 100644
--- a/fs/hpfs/buffer.c
+++ b/fs/hpfs/buffer.c
@@ -225,8 +225,8 @@ void hpfs_mark_4buffers_dirty(struct quad_buffer_head *qbh)
memcpy(qbh->bh[2]->b_data, qbh->data + 2 * 512, 512);
memcpy(qbh->bh[3]->b_data, qbh->data + 3 * 512, 512);
}
- mark_buffer_dirty(qbh->bh[0]);
- mark_buffer_dirty(qbh->bh[1]);
- mark_buffer_dirty(qbh->bh[2]);
- mark_buffer_dirty(qbh->bh[3]);
+ mark_buffer_dirty(NULL, qbh->bh[0]);
+ mark_buffer_dirty(NULL, qbh->bh[1]);
+ mark_buffer_dirty(NULL, qbh->bh[2]);
+ mark_buffer_dirty(NULL, qbh->bh[3]);
}
diff --git a/fs/hpfs/dnode.c b/fs/hpfs/dnode.c
index a4ad18afbdec..6bc5449d0fd1 100644
--- a/fs/hpfs/dnode.c
+++ b/fs/hpfs/dnode.c
@@ -359,7 +359,7 @@ static int hpfs_add_to_dnode(struct inode *i, dnode_secno dno,
return 1;
}
fnode->u.external[0].disk_secno = cpu_to_le32(rdno);
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
brelse(bh);
hpfs_i(i)->i_dno = rdno;
d->up = ad->up = cpu_to_le32(rdno);
@@ -562,7 +562,7 @@ static void delete_empty_dnode(struct inode *i, dnode_secno dno)
}
if ((fnode = hpfs_map_fnode(i->i_sb, up, &bh))) {
fnode->u.external[0].disk_secno = cpu_to_le32(down);
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
brelse(bh);
}
hpfs_inode->i_dno = down;
diff --git a/fs/hpfs/ea.c b/fs/hpfs/ea.c
index 102ba18e561f..a600bac34172 100644
--- a/fs/hpfs/ea.c
+++ b/fs/hpfs/ea.c
@@ -278,7 +278,7 @@ void hpfs_set_ea(struct inode *inode, struct fnode *fnode, const char *key,
fnode->ea_size_s = cpu_to_le16(0);
fnode->ea_secno = cpu_to_le32(n);
fnode->flags &= ~FNODE_anode;
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
brelse(bh);
}
pos = le32_to_cpu(fnode->ea_size_l) + 5 + strlen(key) + size;
@@ -331,7 +331,7 @@ void hpfs_set_ea(struct inode *inode, struct fnode *fnode, const char *key,
}
memcpy(b2, b1, 512);
brelse(bh1);
- mark_buffer_dirty(bh2);
+ mark_buffer_dirty(NULL, bh2);
brelse(bh2);
}
hpfs_free_sectors(s, le32_to_cpu(fnode->ea_secno), len);
diff --git a/fs/hpfs/inode.c b/fs/hpfs/inode.c
index eb8b4baf0f2e..134313fa85fe 100644
--- a/fs/hpfs/inode.c
+++ b/fs/hpfs/inode.c
@@ -253,7 +253,7 @@ void hpfs_write_inode_nolock(struct inode *i)
"directory %08lx doesn't have '.' entry",
(unsigned long)i->i_ino);
}
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
brelse(bh);
}

diff --git a/fs/hpfs/namei.c b/fs/hpfs/namei.c
index e79bd8760f3f..75e2b5597bd6 100644
--- a/fs/hpfs/namei.c
+++ b/fs/hpfs/namei.c
@@ -96,7 +96,7 @@ static int hpfs_mkdir(struct inode *dir, struct dentry *dentry, umode_t mode)
de->first = de->directory = 1;
/*de->hidden = de->system = 0;*/
de->fnode = cpu_to_le32(fno);
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
brelse(bh);
hpfs_mark_4buffers_dirty(&qbh0);
hpfs_brelse4(&qbh0);
@@ -187,7 +187,7 @@ static int hpfs_create(struct inode *dir, struct dentry *dentry, umode_t mode, b
fnode->len = len;
memcpy(fnode->name, name, len > 15 ? 15 : len);
fnode->up = cpu_to_le32(dir->i_ino);
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
brelse(bh);

insert_inode_hash(result);
@@ -269,7 +269,7 @@ static int hpfs_mknod(struct inode *dir, struct dentry *dentry, umode_t mode, de
fnode->len = len;
memcpy(fnode->name, name, len > 15 ? 15 : len);
fnode->up = cpu_to_le32(dir->i_ino);
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);

insert_inode_hash(result);

@@ -348,7 +348,7 @@ static int hpfs_symlink(struct inode *dir, struct dentry *dentry, const char *sy
memcpy(fnode->name, name, len > 15 ? 15 : len);
fnode->up = cpu_to_le32(dir->i_ino);
hpfs_set_ea(result, fnode, "SYMLINK", symlink, strlen(symlink));
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
brelse(bh);

insert_inode_hash(result);
@@ -604,7 +604,7 @@ static int hpfs_rename(struct inode *old_dir, struct dentry *old_dentry,
fnode->len = new_len;
memcpy(fnode->name, new_name, new_len>15?15:new_len);
if (new_len < 15) memset(&fnode->name[new_len], 0, 15 - new_len);
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
brelse(bh);
}
end1:
diff --git a/fs/hpfs/super.c b/fs/hpfs/super.c
index f2c3ebcd309c..93b9908f300f 100644
--- a/fs/hpfs/super.c
+++ b/fs/hpfs/super.c
@@ -27,7 +27,7 @@ static void mark_dirty(struct super_block *s, int remount)
if ((sb = hpfs_map_sector(s, 17, &bh, 0))) {
sb->dirty = 1;
sb->old_wrote = 0;
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
sync_dirty_buffer(bh);
brelse(bh);
}
@@ -46,7 +46,7 @@ static void unmark_dirty(struct super_block *s)
if ((sb = hpfs_map_sector(s, 17, &bh, 0))) {
sb->dirty = hpfs_sb(s)->sb_chkdsk > 1 - hpfs_sb(s)->sb_was_error;
sb->old_wrote = hpfs_sb(s)->sb_chkdsk >= 2 && !hpfs_sb(s)->sb_was_error;
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
sync_dirty_buffer(bh);
brelse(bh);
}
@@ -667,7 +667,7 @@ static int hpfs_fill_super(struct super_block *s, void *options, int silent)
if (!sb_rdonly(s)) {
spareblock->dirty = 1;
spareblock->old_wrote = 0;
- mark_buffer_dirty(bh2);
+ mark_buffer_dirty(NULL, bh2);
}

if (le32_to_cpu(spareblock->n_dnode_spares) != le32_to_cpu(spareblock->n_dnode_spares_free)) {
diff --git a/fs/jbd2/recovery.c b/fs/jbd2/recovery.c
index f99910b69c78..936d74bf4c40 100644
--- a/fs/jbd2/recovery.c
+++ b/fs/jbd2/recovery.c
@@ -631,7 +631,7 @@ static int do_one_pass(journal_t *journal,

BUFFER_TRACE(nbh, "marking dirty");
set_buffer_uptodate(nbh);
- mark_buffer_dirty(nbh);
+ mark_buffer_dirty(NULL, nbh);
BUFFER_TRACE(nbh, "marking uptodate");
++info->nr_replays;
/* ll_rw_block(WRITE, 1, &nbh); */
diff --git a/fs/jbd2/transaction.c b/fs/jbd2/transaction.c
index 6899e7b4036d..01c31d021b47 100644
--- a/fs/jbd2/transaction.c
+++ b/fs/jbd2/transaction.c
@@ -1885,7 +1885,7 @@ static void __jbd2_journal_temp_unlink_buffer(struct journal_head *jh)
if (transaction && is_journal_aborted(transaction->t_journal))
clear_buffer_jbddirty(bh);
else if (test_clear_buffer_jbddirty(bh))
- mark_buffer_dirty(bh); /* Expose it to the VM */
+ mark_buffer_dirty(NULL, bh); /* Expose it to the VM */
}

/*
diff --git a/fs/jfs/jfs_imap.c b/fs/jfs/jfs_imap.c
index f36ef68905a7..69a10c8d9605 100644
--- a/fs/jfs/jfs_imap.c
+++ b/fs/jfs/jfs_imap.c
@@ -3009,7 +3009,7 @@ static void duplicateIXtree(struct super_block *sb, s64 blkno,
j_sb = (struct jfs_superblock *)bh->b_data;
j_sb->s_flag |= cpu_to_le32(JFS_BAD_SAIT);

- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
sync_dirty_buffer(bh);
brelse(bh);
return;
diff --git a/fs/jfs/jfs_mount.c b/fs/jfs/jfs_mount.c
index d8658607bf46..3cf9d794d08a 100644
--- a/fs/jfs/jfs_mount.c
+++ b/fs/jfs/jfs_mount.c
@@ -448,7 +448,7 @@ int updateSuper(struct super_block *sb, uint state)
j_sb->s_flag |= cpu_to_le32(JFS_DASD_PRIME);
}

- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
sync_dirty_buffer(bh);
brelse(bh);

diff --git a/fs/jfs/resize.c b/fs/jfs/resize.c
index c1f417b94fe6..7d800d80a9d1 100644
--- a/fs/jfs/resize.c
+++ b/fs/jfs/resize.c
@@ -247,7 +247,7 @@ int jfs_extendfs(struct super_block *sb, s64 newLVSize, int newLogSize)
PXDlength(&j_sb->s_xlogpxd, newLogSize);

/* synchronously update superblock */
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
sync_dirty_buffer(bh);
brelse(bh);

@@ -523,13 +523,13 @@ int jfs_extendfs(struct super_block *sb, s64 newLVSize, int newLogSize)
j_sb2 = (struct jfs_superblock *)bh2->b_data;
memcpy(j_sb2, j_sb, sizeof (struct jfs_superblock));

- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
sync_dirty_buffer(bh2);
brelse(bh2);
}

/* write primary superblock */
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
sync_dirty_buffer(bh);
brelse(bh);

diff --git a/fs/jfs/super.c b/fs/jfs/super.c
index 1b9264fd54b6..96cc8c79f0d7 100644
--- a/fs/jfs/super.c
+++ b/fs/jfs/super.c
@@ -838,7 +838,7 @@ static ssize_t jfs_quota_write(struct super_block *sb, int type,
memcpy(bh->b_data+offset, data, tocopy);
flush_dcache_page(bh->b_page);
set_buffer_uptodate(bh);
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
unlock_buffer(bh);
brelse(bh);
offset = 0;
diff --git a/fs/minix/bitmap.c b/fs/minix/bitmap.c
index f4e5e5181a14..61c7f0d4d00a 100644
--- a/fs/minix/bitmap.c
+++ b/fs/minix/bitmap.c
@@ -64,7 +64,7 @@ void minix_free_block(struct inode *inode, unsigned long block)
printk("minix_free_block (%s:%lu): bit already cleared\n",
sb->s_id, block);
spin_unlock(&bitmap_lock);
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
return;
}

@@ -83,7 +83,7 @@ int minix_new_block(struct inode * inode)
if (j < bits_per_zone) {
minix_set_bit(j, bh->b_data);
spin_unlock(&bitmap_lock);
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
j += i * bits_per_zone + sbi->s_firstdatazone-1;
if (j < sbi->s_firstdatazone || j >= sbi->s_nzones)
break;
@@ -175,7 +175,7 @@ static void minix_clear_inode(struct inode *inode)
}
}
if (bh) {
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
brelse (bh);
}
}
@@ -207,7 +207,7 @@ void minix_free_inode(struct inode * inode)
if (!minix_test_and_clear_bit(bit, bh->b_data))
printk("minix_free_inode: bit %lu already cleared\n", bit);
spin_unlock(&bitmap_lock);
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
}

struct inode *minix_new_inode(const struct inode *dir, umode_t mode, int *error)
@@ -246,7 +246,7 @@ struct inode *minix_new_inode(const struct inode *dir, umode_t mode, int *error)
return NULL;
}
spin_unlock(&bitmap_lock);
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
j += i * bits_per_zone;
if (!j || j > sbi->s_ninodes) {
iput(inode);
diff --git a/fs/minix/inode.c b/fs/minix/inode.c
index 450aa4e87cd9..e8550a58fe83 100644
--- a/fs/minix/inode.c
+++ b/fs/minix/inode.c
@@ -45,7 +45,7 @@ static void minix_put_super(struct super_block *sb)
if (!sb_rdonly(sb)) {
if (sbi->s_version != MINIX_V3) /* s_state is now out from V3 sb */
sbi->s_ms->s_state = sbi->s_mount_state;
- mark_buffer_dirty(sbi->s_sbh);
+ mark_buffer_dirty(NULL, sbi->s_sbh);
}
for (i = 0; i < sbi->s_imap_blocks; i++)
brelse(sbi->s_imap[i]);
@@ -134,7 +134,7 @@ static int minix_remount (struct super_block * sb, int * flags, char * data)
/* Mounting a rw partition read-only. */
if (sbi->s_version != MINIX_V3)
ms->s_state = sbi->s_mount_state;
- mark_buffer_dirty(sbi->s_sbh);
+ mark_buffer_dirty(NULL, sbi->s_sbh);
} else {
/* Mount a partition which is read-only, read-write. */
if (sbi->s_version != MINIX_V3) {
@@ -143,7 +143,7 @@ static int minix_remount (struct super_block * sb, int * flags, char * data)
} else {
sbi->s_mount_state = MINIX_VALID_FS;
}
- mark_buffer_dirty(sbi->s_sbh);
+ mark_buffer_dirty(NULL, sbi->s_sbh);

if (!(sbi->s_mount_state & MINIX_VALID_FS))
printk("MINIX-fs warning: remounting unchecked fs, "
@@ -296,7 +296,7 @@ static int minix_fill_super(struct super_block *s, void *data, int silent)
if (!sb_rdonly(s)) {
if (sbi->s_version != MINIX_V3) /* s_state is now out from V3 sb */
ms->s_state &= ~MINIX_VALID_FS;
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
}
if (!(sbi->s_mount_state & MINIX_VALID_FS))
printk("MINIX-fs: mounting unchecked file system, "
@@ -570,7 +570,7 @@ static struct buffer_head * V1_minix_update_inode(struct inode * inode)
raw_inode->i_zone[0] = old_encode_dev(inode->i_rdev);
else for (i = 0; i < 9; i++)
raw_inode->i_zone[i] = minix_inode->u.i1_data[i];
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
return bh;
}

@@ -599,7 +599,7 @@ static struct buffer_head * V2_minix_update_inode(struct inode * inode)
raw_inode->i_zone[0] = old_encode_dev(inode->i_rdev);
else for (i = 0; i < 10; i++)
raw_inode->i_zone[i] = minix_inode->u.i2_data[i];
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
return bh;
}

diff --git a/fs/nilfs2/alloc.c b/fs/nilfs2/alloc.c
index 03b8ba933eb2..7e3d3a8dc3f9 100644
--- a/fs/nilfs2/alloc.c
+++ b/fs/nilfs2/alloc.c
@@ -591,8 +591,8 @@ int nilfs_palloc_prepare_alloc_entry(struct inode *inode,
void nilfs_palloc_commit_alloc_entry(struct inode *inode,
struct nilfs_palloc_req *req)
{
- mark_buffer_dirty(req->pr_bitmap_bh);
- mark_buffer_dirty(req->pr_desc_bh);
+ mark_buffer_dirty(NULL, req->pr_bitmap_bh);
+ mark_buffer_dirty(NULL, req->pr_desc_bh);
nilfs_mdt_mark_dirty(inode);

brelse(req->pr_bitmap_bh);
@@ -632,8 +632,8 @@ void nilfs_palloc_commit_free_entry(struct inode *inode,
kunmap(req->pr_bitmap_bh->b_page);
kunmap(req->pr_desc_bh->b_page);

- mark_buffer_dirty(req->pr_desc_bh);
- mark_buffer_dirty(req->pr_bitmap_bh);
+ mark_buffer_dirty(NULL, req->pr_desc_bh);
+ mark_buffer_dirty(NULL, req->pr_bitmap_bh);
nilfs_mdt_mark_dirty(inode);

brelse(req->pr_bitmap_bh);
@@ -810,7 +810,7 @@ int nilfs_palloc_freev(struct inode *inode, __u64 *entry_nrs, size_t nitems)
} while (true);

kunmap(bitmap_bh->b_page);
- mark_buffer_dirty(bitmap_bh);
+ mark_buffer_dirty(NULL, bitmap_bh);
brelse(bitmap_bh);

for (k = 0; k < nempties; k++) {
@@ -828,7 +828,7 @@ int nilfs_palloc_freev(struct inode *inode, __u64 *entry_nrs, size_t nitems)
inode, group, desc_bh, desc_kaddr);
nfree = nilfs_palloc_group_desc_add_entries(desc, lock, n);
kunmap_atomic(desc_kaddr);
- mark_buffer_dirty(desc_bh);
+ mark_buffer_dirty(NULL, desc_bh);
nilfs_mdt_mark_dirty(inode);
brelse(desc_bh);

diff --git a/fs/nilfs2/btnode.c b/fs/nilfs2/btnode.c
index c21e0b4454a6..a2d7844b1ff4 100644
--- a/fs/nilfs2/btnode.c
+++ b/fs/nilfs2/btnode.c
@@ -249,7 +249,7 @@ void nilfs_btnode_commit_change_key(struct address_space *btnc,
"invalid oldkey %lld (newkey=%lld)",
(unsigned long long)oldkey,
(unsigned long long)newkey);
- mark_buffer_dirty(obh);
+ mark_buffer_dirty(NULL, obh);

spin_lock_irq(&btnc->tree_lock);
radix_tree_delete(&btnc->page_tree, oldkey);
@@ -261,7 +261,7 @@ void nilfs_btnode_commit_change_key(struct address_space *btnc,
unlock_page(opage);
} else {
nilfs_copy_buffer(nbh, obh);
- mark_buffer_dirty(nbh);
+ mark_buffer_dirty(NULL, nbh);

nbh->b_blocknr = newkey;
ctxt->bh = nbh;
diff --git a/fs/nilfs2/btree.c b/fs/nilfs2/btree.c
index 16a7a67a11c9..39edf8a267d7 100644
--- a/fs/nilfs2/btree.c
+++ b/fs/nilfs2/btree.c
@@ -792,7 +792,7 @@ static void nilfs_btree_promote_key(struct nilfs_bmap *btree,
nilfs_btree_get_nonroot_node(path, level),
path[level].bp_index, key);
if (!buffer_dirty(path[level].bp_bh))
- mark_buffer_dirty(path[level].bp_bh);
+ mark_buffer_dirty(NULL, path[level].bp_bh);
} while ((path[level].bp_index == 0) &&
(++level < nilfs_btree_height(btree) - 1));
}
@@ -817,7 +817,7 @@ static void nilfs_btree_do_insert(struct nilfs_bmap *btree,
nilfs_btree_node_insert(node, path[level].bp_index,
*keyp, *ptrp, ncblk);
if (!buffer_dirty(path[level].bp_bh))
- mark_buffer_dirty(path[level].bp_bh);
+ mark_buffer_dirty(NULL, path[level].bp_bh);

if (path[level].bp_index == 0)
nilfs_btree_promote_key(btree, path, level + 1,
@@ -855,9 +855,9 @@ static void nilfs_btree_carry_left(struct nilfs_bmap *btree,
nilfs_btree_node_move_left(left, node, n, ncblk, ncblk);

if (!buffer_dirty(path[level].bp_bh))
- mark_buffer_dirty(path[level].bp_bh);
+ mark_buffer_dirty(NULL, path[level].bp_bh);
if (!buffer_dirty(path[level].bp_sib_bh))
- mark_buffer_dirty(path[level].bp_sib_bh);
+ mark_buffer_dirty(NULL, path[level].bp_sib_bh);

nilfs_btree_promote_key(btree, path, level + 1,
nilfs_btree_node_get_key(node, 0));
@@ -901,9 +901,9 @@ static void nilfs_btree_carry_right(struct nilfs_bmap *btree,
nilfs_btree_node_move_right(node, right, n, ncblk, ncblk);

if (!buffer_dirty(path[level].bp_bh))
- mark_buffer_dirty(path[level].bp_bh);
+ mark_buffer_dirty(NULL, path[level].bp_bh);
if (!buffer_dirty(path[level].bp_sib_bh))
- mark_buffer_dirty(path[level].bp_sib_bh);
+ mark_buffer_dirty(NULL, path[level].bp_sib_bh);

path[level + 1].bp_index++;
nilfs_btree_promote_key(btree, path, level + 1,
@@ -946,9 +946,9 @@ static void nilfs_btree_split(struct nilfs_bmap *btree,
nilfs_btree_node_move_right(node, right, n, ncblk, ncblk);

if (!buffer_dirty(path[level].bp_bh))
- mark_buffer_dirty(path[level].bp_bh);
+ mark_buffer_dirty(NULL, path[level].bp_bh);
if (!buffer_dirty(path[level].bp_sib_bh))
- mark_buffer_dirty(path[level].bp_sib_bh);
+ mark_buffer_dirty(NULL, path[level].bp_sib_bh);

if (move) {
path[level].bp_index -= nilfs_btree_node_get_nchildren(node);
@@ -992,7 +992,7 @@ static void nilfs_btree_grow(struct nilfs_bmap *btree,
nilfs_btree_node_set_level(root, level + 1);

if (!buffer_dirty(path[level].bp_sib_bh))
- mark_buffer_dirty(path[level].bp_sib_bh);
+ mark_buffer_dirty(NULL, path[level].bp_sib_bh);

path[level].bp_bh = path[level].bp_sib_bh;
path[level].bp_sib_bh = NULL;
@@ -1267,7 +1267,7 @@ static void nilfs_btree_do_delete(struct nilfs_bmap *btree,
nilfs_btree_node_delete(node, path[level].bp_index,
keyp, ptrp, ncblk);
if (!buffer_dirty(path[level].bp_bh))
- mark_buffer_dirty(path[level].bp_bh);
+ mark_buffer_dirty(NULL, path[level].bp_bh);
if (path[level].bp_index == 0)
nilfs_btree_promote_key(btree, path, level + 1,
nilfs_btree_node_get_key(node, 0));
@@ -1299,9 +1299,9 @@ static void nilfs_btree_borrow_left(struct nilfs_bmap *btree,
nilfs_btree_node_move_right(left, node, n, ncblk, ncblk);

if (!buffer_dirty(path[level].bp_bh))
- mark_buffer_dirty(path[level].bp_bh);
+ mark_buffer_dirty(NULL, path[level].bp_bh);
if (!buffer_dirty(path[level].bp_sib_bh))
- mark_buffer_dirty(path[level].bp_sib_bh);
+ mark_buffer_dirty(NULL, path[level].bp_sib_bh);

nilfs_btree_promote_key(btree, path, level + 1,
nilfs_btree_node_get_key(node, 0));
@@ -1331,9 +1331,9 @@ static void nilfs_btree_borrow_right(struct nilfs_bmap *btree,
nilfs_btree_node_move_left(node, right, n, ncblk, ncblk);

if (!buffer_dirty(path[level].bp_bh))
- mark_buffer_dirty(path[level].bp_bh);
+ mark_buffer_dirty(NULL, path[level].bp_bh);
if (!buffer_dirty(path[level].bp_sib_bh))
- mark_buffer_dirty(path[level].bp_sib_bh);
+ mark_buffer_dirty(NULL, path[level].bp_sib_bh);

path[level + 1].bp_index++;
nilfs_btree_promote_key(btree, path, level + 1,
@@ -1362,7 +1362,7 @@ static void nilfs_btree_concat_left(struct nilfs_bmap *btree,
nilfs_btree_node_move_left(left, node, n, ncblk, ncblk);

if (!buffer_dirty(path[level].bp_sib_bh))
- mark_buffer_dirty(path[level].bp_sib_bh);
+ mark_buffer_dirty(NULL, path[level].bp_sib_bh);

nilfs_btnode_delete(path[level].bp_bh);
path[level].bp_bh = path[level].bp_sib_bh;
@@ -1388,7 +1388,7 @@ static void nilfs_btree_concat_right(struct nilfs_bmap *btree,
nilfs_btree_node_move_left(node, right, n, ncblk, ncblk);

if (!buffer_dirty(path[level].bp_bh))
- mark_buffer_dirty(path[level].bp_bh);
+ mark_buffer_dirty(NULL, path[level].bp_bh);

nilfs_btnode_delete(path[level].bp_sib_bh);
path[level].bp_sib_bh = NULL;
@@ -1818,7 +1818,7 @@ nilfs_btree_commit_convert_and_insert(struct nilfs_bmap *btree,
nilfs_btree_node_init(node, 0, 1, n, ncblk, keys, ptrs);
nilfs_btree_node_insert(node, n, key, dreq->bpr_ptr, ncblk);
if (!buffer_dirty(bh))
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
if (!nilfs_bmap_dirty(btree))
nilfs_bmap_set_dirty(btree);

@@ -1896,7 +1896,7 @@ static int nilfs_btree_propagate_p(struct nilfs_bmap *btree,
{
while ((++level < nilfs_btree_height(btree) - 1) &&
!buffer_dirty(path[level].bp_bh))
- mark_buffer_dirty(path[level].bp_bh);
+ mark_buffer_dirty(NULL, path[level].bp_bh);

return 0;
}
@@ -2339,7 +2339,7 @@ static int nilfs_btree_mark(struct nilfs_bmap *btree, __u64 key, int level)
}

if (!buffer_dirty(bh))
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
brelse(bh);
if (!nilfs_bmap_dirty(btree))
nilfs_bmap_set_dirty(btree);
diff --git a/fs/nilfs2/cpfile.c b/fs/nilfs2/cpfile.c
index a15a1601e931..9e4558a8e4da 100644
--- a/fs/nilfs2/cpfile.c
+++ b/fs/nilfs2/cpfile.c
@@ -258,14 +258,14 @@ int nilfs_cpfile_get_checkpoint(struct inode *cpfile,
if (!nilfs_cpfile_is_in_first(cpfile, cno))
nilfs_cpfile_block_add_valid_checkpoints(cpfile, cp_bh,
kaddr, 1);
- mark_buffer_dirty(cp_bh);
+ mark_buffer_dirty(NULL, cp_bh);

kaddr = kmap_atomic(header_bh->b_page);
header = nilfs_cpfile_block_get_header(cpfile, header_bh,
kaddr);
le64_add_cpu(&header->ch_ncheckpoints, 1);
kunmap_atomic(kaddr);
- mark_buffer_dirty(header_bh);
+ mark_buffer_dirty(NULL, header_bh);
nilfs_mdt_mark_dirty(cpfile);
}

@@ -370,7 +370,7 @@ int nilfs_cpfile_delete_checkpoints(struct inode *cpfile,
}
if (nicps > 0) {
tnicps += nicps;
- mark_buffer_dirty(cp_bh);
+ mark_buffer_dirty(NULL, cp_bh);
nilfs_mdt_mark_dirty(cpfile);
if (!nilfs_cpfile_is_in_first(cpfile, cno)) {
count =
@@ -402,7 +402,7 @@ int nilfs_cpfile_delete_checkpoints(struct inode *cpfile,
header = nilfs_cpfile_block_get_header(cpfile, header_bh,
kaddr);
le64_add_cpu(&header->ch_ncheckpoints, -(u64)tnicps);
- mark_buffer_dirty(header_bh);
+ mark_buffer_dirty(NULL, header_bh);
nilfs_mdt_mark_dirty(cpfile);
kunmap_atomic(kaddr);
}
@@ -720,10 +720,10 @@ static int nilfs_cpfile_set_snapshot(struct inode *cpfile, __u64 cno)
le64_add_cpu(&header->ch_nsnapshots, 1);
kunmap_atomic(kaddr);

- mark_buffer_dirty(prev_bh);
- mark_buffer_dirty(curr_bh);
- mark_buffer_dirty(cp_bh);
- mark_buffer_dirty(header_bh);
+ mark_buffer_dirty(NULL, prev_bh);
+ mark_buffer_dirty(NULL, curr_bh);
+ mark_buffer_dirty(NULL, cp_bh);
+ mark_buffer_dirty(NULL, header_bh);
nilfs_mdt_mark_dirty(cpfile);

brelse(prev_bh);
@@ -823,10 +823,10 @@ static int nilfs_cpfile_clear_snapshot(struct inode *cpfile, __u64 cno)
le64_add_cpu(&header->ch_nsnapshots, -1);
kunmap_atomic(kaddr);

- mark_buffer_dirty(next_bh);
- mark_buffer_dirty(prev_bh);
- mark_buffer_dirty(cp_bh);
- mark_buffer_dirty(header_bh);
+ mark_buffer_dirty(NULL, next_bh);
+ mark_buffer_dirty(NULL, prev_bh);
+ mark_buffer_dirty(NULL, cp_bh);
+ mark_buffer_dirty(NULL, header_bh);
nilfs_mdt_mark_dirty(cpfile);

brelse(prev_bh);
diff --git a/fs/nilfs2/dat.c b/fs/nilfs2/dat.c
index dffedb2f8817..8db180ed9812 100644
--- a/fs/nilfs2/dat.c
+++ b/fs/nilfs2/dat.c
@@ -56,7 +56,7 @@ static int nilfs_dat_prepare_entry(struct inode *dat,
static void nilfs_dat_commit_entry(struct inode *dat,
struct nilfs_palloc_req *req)
{
- mark_buffer_dirty(req->pr_entry_bh);
+ mark_buffer_dirty(NULL, req->pr_entry_bh);
nilfs_mdt_mark_dirty(dat);
brelse(req->pr_entry_bh);
}
@@ -362,7 +362,7 @@ int nilfs_dat_move(struct inode *dat, __u64 vblocknr, sector_t blocknr)
entry->de_blocknr = cpu_to_le64(blocknr);
kunmap_atomic(kaddr);

- mark_buffer_dirty(entry_bh);
+ mark_buffer_dirty(NULL, entry_bh);
nilfs_mdt_mark_dirty(dat);

brelse(entry_bh);
diff --git a/fs/nilfs2/gcinode.c b/fs/nilfs2/gcinode.c
index 853a831dcde0..ba2af926b39a 100644
--- a/fs/nilfs2/gcinode.c
+++ b/fs/nilfs2/gcinode.c
@@ -164,7 +164,7 @@ int nilfs_gccache_wait_and_mark_dirty(struct buffer_head *bh)
clear_buffer_uptodate(bh);
return -EIO;
}
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
return 0;
}

diff --git a/fs/nilfs2/ifile.c b/fs/nilfs2/ifile.c
index b8fa45c20c63..11262c2f46f4 100644
--- a/fs/nilfs2/ifile.c
+++ b/fs/nilfs2/ifile.c
@@ -82,7 +82,7 @@ int nilfs_ifile_create_inode(struct inode *ifile, ino_t *out_ino,
return ret;
}
nilfs_palloc_commit_alloc_entry(ifile, &req);
- mark_buffer_dirty(req.pr_entry_bh);
+ mark_buffer_dirty(NULL, req.pr_entry_bh);
nilfs_mdt_mark_dirty(ifile);
*out_ino = (ino_t)req.pr_entry_nr;
*out_bh = req.pr_entry_bh;
@@ -130,7 +130,7 @@ int nilfs_ifile_delete_inode(struct inode *ifile, ino_t ino)
raw_inode->i_flags = 0;
kunmap_atomic(kaddr);

- mark_buffer_dirty(req.pr_entry_bh);
+ mark_buffer_dirty(NULL, req.pr_entry_bh);
brelse(req.pr_entry_bh);

nilfs_palloc_commit_free_entry(ifile, &req);
diff --git a/fs/nilfs2/inode.c b/fs/nilfs2/inode.c
index 7cc0268d68ce..811e4d952511 100644
--- a/fs/nilfs2/inode.c
+++ b/fs/nilfs2/inode.c
@@ -968,7 +968,7 @@ int __nilfs_mark_inode_dirty(struct inode *inode, int flags)
return err;
}
nilfs_update_inode(inode, ibh, flags);
- mark_buffer_dirty(ibh);
+ mark_buffer_dirty(NULL, ibh);
nilfs_mdt_mark_dirty(NILFS_I(inode)->i_root->ifile);
brelse(ibh);
return 0;
diff --git a/fs/nilfs2/ioctl.c b/fs/nilfs2/ioctl.c
index 1d2c3d7711fe..18b550252ff2 100644
--- a/fs/nilfs2/ioctl.c
+++ b/fs/nilfs2/ioctl.c
@@ -801,7 +801,7 @@ static int nilfs_ioctl_mark_blocks_dirty(struct the_nilfs *nilfs,
WARN_ON(ret == -ENOENT);
return ret;
}
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
nilfs_mdt_mark_dirty(nilfs->ns_dat);
put_bh(bh);
} else {
diff --git a/fs/nilfs2/mdt.c b/fs/nilfs2/mdt.c
index ca7bc0fba624..ad41b67eb25f 100644
--- a/fs/nilfs2/mdt.c
+++ b/fs/nilfs2/mdt.c
@@ -64,7 +64,7 @@ nilfs_mdt_insert_new_block(struct inode *inode, unsigned long block,
kunmap_atomic(kaddr);

set_buffer_uptodate(bh);
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
nilfs_mdt_mark_dirty(inode);

trace_nilfs2_mdt_insert_new_block(inode, inode->i_ino, block);
diff --git a/fs/nilfs2/segment.c b/fs/nilfs2/segment.c
index 0952d0acab4a..8dc544e3fe6a 100644
--- a/fs/nilfs2/segment.c
+++ b/fs/nilfs2/segment.c
@@ -883,7 +883,7 @@ static int nilfs_segctor_create_checkpoint(struct nilfs_sc_info *sci)
* needed to collect the checkpoint even if it was not newly
* created.
*/
- mark_buffer_dirty(bh_cp);
+ mark_buffer_dirty(NULL, bh_cp);
nilfs_mdt_mark_dirty(nilfs->ns_cpfile);
nilfs_cpfile_put_checkpoint(
nilfs->ns_cpfile, nilfs->ns_cno, bh_cp);
@@ -1964,7 +1964,7 @@ static int nilfs_segctor_collect_dirty_files(struct nilfs_sc_info *sci,
}

// Always redirty the buffer to avoid race condition
- mark_buffer_dirty(ii->i_bh);
+ mark_buffer_dirty(NULL, ii->i_bh);
nilfs_mdt_mark_dirty(ifile);

clear_bit(NILFS_I_QUEUED, &ii->i_state);
diff --git a/fs/nilfs2/sufile.c b/fs/nilfs2/sufile.c
index c7fa139d50e8..707f2231d348 100644
--- a/fs/nilfs2/sufile.c
+++ b/fs/nilfs2/sufile.c
@@ -122,7 +122,7 @@ static void nilfs_sufile_mod_counter(struct buffer_head *header_bh,
le64_add_cpu(&header->sh_ndirtysegs, ndirtyadd);
kunmap_atomic(kaddr);

- mark_buffer_dirty(header_bh);
+ mark_buffer_dirty(NULL, header_bh);
}

/**
@@ -383,8 +383,8 @@ int nilfs_sufile_alloc(struct inode *sufile, __u64 *segnump)
kunmap_atomic(kaddr);

sui->ncleansegs--;
- mark_buffer_dirty(header_bh);
- mark_buffer_dirty(su_bh);
+ mark_buffer_dirty(NULL, header_bh);
+ mark_buffer_dirty(NULL, su_bh);
nilfs_mdt_mark_dirty(sufile);
brelse(su_bh);
*segnump = segnum;
@@ -431,7 +431,7 @@ void nilfs_sufile_do_cancel_free(struct inode *sufile, __u64 segnum,
nilfs_sufile_mod_counter(header_bh, -1, 1);
NILFS_SUI(sufile)->ncleansegs--;

- mark_buffer_dirty(su_bh);
+ mark_buffer_dirty(NULL, su_bh);
nilfs_mdt_mark_dirty(sufile);
}

@@ -462,7 +462,7 @@ void nilfs_sufile_do_scrap(struct inode *sufile, __u64 segnum,
nilfs_sufile_mod_counter(header_bh, clean ? (u64)-1 : 0, dirty ? 0 : 1);
NILFS_SUI(sufile)->ncleansegs -= clean;

- mark_buffer_dirty(su_bh);
+ mark_buffer_dirty(NULL, su_bh);
nilfs_mdt_mark_dirty(sufile);
}

@@ -489,7 +489,7 @@ void nilfs_sufile_do_free(struct inode *sufile, __u64 segnum,
sudirty = nilfs_segment_usage_dirty(su);
nilfs_segment_usage_set_clean(su);
kunmap_atomic(kaddr);
- mark_buffer_dirty(su_bh);
+ mark_buffer_dirty(NULL, su_bh);

nilfs_sufile_mod_counter(header_bh, 1, sudirty ? (u64)-1 : 0);
NILFS_SUI(sufile)->ncleansegs++;
@@ -511,7 +511,7 @@ int nilfs_sufile_mark_dirty(struct inode *sufile, __u64 segnum)

ret = nilfs_sufile_get_segment_usage_block(sufile, segnum, 0, &bh);
if (!ret) {
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
nilfs_mdt_mark_dirty(sufile);
brelse(bh);
}
@@ -546,7 +546,7 @@ int nilfs_sufile_set_segment_usage(struct inode *sufile, __u64 segnum,
su->su_nblocks = cpu_to_le32(nblocks);
kunmap_atomic(kaddr);

- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
nilfs_mdt_mark_dirty(sufile);
brelse(bh);

@@ -625,7 +625,7 @@ void nilfs_sufile_do_set_error(struct inode *sufile, __u64 segnum,
nilfs_sufile_mod_counter(header_bh, -1, 0);
NILFS_SUI(sufile)->ncleansegs--;
}
- mark_buffer_dirty(su_bh);
+ mark_buffer_dirty(NULL, su_bh);
nilfs_mdt_mark_dirty(sufile);
}

@@ -711,7 +711,7 @@ static int nilfs_sufile_truncate_range(struct inode *sufile,
}
kunmap_atomic(kaddr);
if (nc > 0) {
- mark_buffer_dirty(su_bh);
+ mark_buffer_dirty(NULL, su_bh);
ncleaned += nc;
}
brelse(su_bh);
@@ -790,7 +790,7 @@ int nilfs_sufile_resize(struct inode *sufile, __u64 newnsegs)
header->sh_ncleansegs = cpu_to_le64(sui->ncleansegs);
kunmap_atomic(kaddr);

- mark_buffer_dirty(header_bh);
+ mark_buffer_dirty(NULL, header_bh);
nilfs_mdt_mark_dirty(sufile);
nilfs_set_nsegments(nilfs, newnsegs);

@@ -984,13 +984,13 @@ ssize_t nilfs_sufile_set_suinfo(struct inode *sufile, void *buf,
continue;

/* get different block */
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
put_bh(bh);
ret = nilfs_mdt_get_block(sufile, blkoff, 1, NULL, &bh);
if (unlikely(ret < 0))
goto out_mark;
}
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
put_bh(bh);

out_mark:
diff --git a/fs/ntfs/file.c b/fs/ntfs/file.c
index 860b3b2ff47d..bf07c0ca127e 100644
--- a/fs/ntfs/file.c
+++ b/fs/ntfs/file.c
@@ -743,7 +743,7 @@ static int ntfs_prepare_pages_for_non_resident_write(struct page **pages,
/* We allocated the buffer. */
clean_bdev_bh_alias(bh);
if (bh_end <= pos || bh_pos >= end)
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
else
set_buffer_new(bh);
}
@@ -799,7 +799,7 @@ static int ntfs_prepare_pages_for_non_resident_write(struct page **pages,
blocksize);
set_buffer_uptodate(bh);
}
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
continue;
}
set_buffer_new(bh);
@@ -1365,7 +1365,7 @@ static int ntfs_prepare_pages_for_non_resident_write(struct page **pages,
set_buffer_uptodate(bh);
}
}
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
} while ((bh = bh->b_this_page) != head);
} while (++u <= nr_pages);
ntfs_error(vol->sb, "Failed. Returning error code %i.", err);
@@ -1434,7 +1434,7 @@ static inline int ntfs_commit_pages_after_non_resident_write(
partial = true;
} else {
set_buffer_uptodate(bh);
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
}
} while (bh_pos += blocksize, (bh = bh->b_this_page) != head);
/*
diff --git a/fs/ntfs/super.c b/fs/ntfs/super.c
index bb7159f697f2..0d21744db6ba 100644
--- a/fs/ntfs/super.c
+++ b/fs/ntfs/super.c
@@ -737,7 +737,7 @@ static struct buffer_head *read_ntfs_boot_sector(struct super_block *sb,
"boot sector from backup copy.");
memcpy(bh_primary->b_data, bh_backup->b_data,
NTFS_BLOCK_SIZE);
- mark_buffer_dirty(bh_primary);
+ mark_buffer_dirty(NULL, bh_primary);
sync_dirty_buffer(bh_primary);
if (buffer_uptodate(bh_primary)) {
brelse(bh_backup);
diff --git a/fs/ocfs2/alloc.c b/fs/ocfs2/alloc.c
index 9a876bb07cac..7ab61d67e89e 100644
--- a/fs/ocfs2/alloc.c
+++ b/fs/ocfs2/alloc.c
@@ -6815,7 +6815,7 @@ static int ocfs2_cache_extent_block_free(struct ocfs2_cached_dealloc_ctxt *ctxt,
static int ocfs2_zero_func(handle_t *handle, struct buffer_head *bh)
{
set_buffer_uptodate(bh);
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
return 0;
}

diff --git a/fs/ocfs2/aops.c b/fs/ocfs2/aops.c
index 515e0a00839b..64002c13bdd1 100644
--- a/fs/ocfs2/aops.c
+++ b/fs/ocfs2/aops.c
@@ -701,7 +701,7 @@ int ocfs2_map_page_blocks(struct page *page, u64 *p_blkno,

zero_user(page, block_start, bh->b_size);
set_buffer_uptodate(bh);
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);

next_bh:
block_start = block_end;
@@ -930,7 +930,7 @@ static void ocfs2_zero_new_buffers(struct page *page, unsigned from, unsigned to
}

clear_buffer_new(bh);
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
}
}

diff --git a/fs/ocfs2/inode.c b/fs/ocfs2/inode.c
index d51b80edd972..7a4e5e9db53d 100644
--- a/fs/ocfs2/inode.c
+++ b/fs/ocfs2/inode.c
@@ -1568,7 +1568,7 @@ static int ocfs2_filecheck_repair_inode_block(struct super_block *sb,

if (changed || ocfs2_validate_meta_ecc(sb, bh->b_data, &di->i_check)) {
ocfs2_compute_meta_ecc(sb, bh->b_data, &di->i_check);
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
mlog(ML_ERROR,
"Filecheck: reset dinode #%llu: compute meta ecc\n",
(unsigned long long)bh->b_blocknr);
diff --git a/fs/omfs/bitmap.c b/fs/omfs/bitmap.c
index 7147ba6a6afc..0a4a756e2865 100644
--- a/fs/omfs/bitmap.c
+++ b/fs/omfs/bitmap.c
@@ -63,7 +63,7 @@ static int set_run(struct super_block *sb, int map,
bit = 0;
map++;

- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
brelse(bh);
bh = sb_bread(sb,
clus_to_blk(sbi, sbi->s_bitmap_ino) + map);
@@ -78,7 +78,7 @@ static int set_run(struct super_block *sb, int map,
clear_bit(bit, (unsigned long *)bh->b_data);
}
}
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
brelse(bh);
err = 0;
out:
@@ -111,7 +111,7 @@ int omfs_allocate_block(struct super_block *sb, u64 block)
goto out;

set_bit(bit, (unsigned long *)bh->b_data);
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
brelse(bh);
}
ret = 1;
diff --git a/fs/omfs/dir.c b/fs/omfs/dir.c
index b7146526afff..a5c6f506a0a0 100644
--- a/fs/omfs/dir.c
+++ b/fs/omfs/dir.c
@@ -103,7 +103,7 @@ int omfs_make_empty(struct inode *inode, struct super_block *sb)
oi->i_head.h_self = cpu_to_be64(inode->i_ino);
oi->i_sibling = ~cpu_to_be64(0ULL);

- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
brelse(bh);
return 0;
}
@@ -127,7 +127,7 @@ static int omfs_add_link(struct dentry *dentry, struct inode *inode)
entry = (__be64 *) &bh->b_data[ofs];
block = be64_to_cpu(*entry);
*entry = cpu_to_be64(inode->i_ino);
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
brelse(bh);

/* now set the sibling and parent pointers on the new inode */
@@ -140,7 +140,7 @@ static int omfs_add_link(struct dentry *dentry, struct inode *inode)
memset(oi->i_name + namelen, 0, OMFS_NAMELEN - namelen);
oi->i_sibling = cpu_to_be64(block);
oi->i_parent = cpu_to_be64(dir->i_ino);
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
brelse(bh);

dir->i_ctime = current_time(dir);
@@ -196,7 +196,7 @@ static int omfs_delete_entry(struct dentry *dentry)
}

*entry = next;
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);

if (prev != ~0) {
dirty = omfs_iget(dir->i_sb, prev);
diff --git a/fs/omfs/file.c b/fs/omfs/file.c
index ac27a4b2186a..4dbfb35b1a40 100644
--- a/fs/omfs/file.c
+++ b/fs/omfs/file.c
@@ -80,7 +80,7 @@ int omfs_shrink_inode(struct inode *inode)
entry++;
}
omfs_make_empty_table(bh, (char *) oe - bh->b_data);
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
brelse(bh);

if (last != inode->i_ino)
@@ -272,7 +272,7 @@ static int omfs_get_block(struct inode *inode, sector_t block,
if (create) {
ret = omfs_grow_extent(inode, oe, &new_block);
if (ret == 0) {
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
mark_inode_dirty(inode);
map_bh(bh_result, inode->i_sb,
clus_to_blk(sbi, new_block));
diff --git a/fs/omfs/inode.c b/fs/omfs/inode.c
index ee14af9e26f2..4213ef2cd088 100644
--- a/fs/omfs/inode.c
+++ b/fs/omfs/inode.c
@@ -140,7 +140,7 @@ static int __omfs_write_inode(struct inode *inode, int wait)

omfs_update_checksums(oi);

- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
if (wait) {
sync_dirty_buffer(bh);
if (buffer_req(bh) && !buffer_uptodate(bh))
@@ -154,7 +154,7 @@ static int __omfs_write_inode(struct inode *inode, int wait)
goto out_brelse;

memcpy(bh2->b_data, bh->b_data, bh->b_size);
- mark_buffer_dirty(bh2);
+ mark_buffer_dirty(NULL, bh2);
if (wait) {
sync_dirty_buffer(bh2);
if (buffer_req(bh2) && !buffer_uptodate(bh2))
diff --git a/fs/reiserfs/file.c b/fs/reiserfs/file.c
index 843aadcc123c..804b13c45f53 100644
--- a/fs/reiserfs/file.c
+++ b/fs/reiserfs/file.c
@@ -214,7 +214,7 @@ int reiserfs_commit_page(struct inode *inode, struct page *page,
reiserfs_prepare_for_journal(s, bh, 1);
journal_mark_dirty(&th, bh);
} else if (!buffer_dirty(bh)) {
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
/*
* do data=ordered on any page past the end
* of file and any buffer marked BH_New.
diff --git a/fs/reiserfs/inode.c b/fs/reiserfs/inode.c
index bc64ca190848..e438aed1b622 100644
--- a/fs/reiserfs/inode.c
+++ b/fs/reiserfs/inode.c
@@ -999,7 +999,7 @@ int reiserfs_get_block(struct inode *inode, sector_t block,
* VM (which was also the case with
* __mark_buffer_dirty())
*/
- mark_buffer_dirty(unbh);
+ mark_buffer_dirty(NULL, unbh);
}
} else {
/*
@@ -2336,7 +2336,7 @@ int reiserfs_truncate_file(struct inode *inode, int update_timestamps)
length = blocksize - length;
zero_user(page, offset, length);
if (buffer_mapped(bh) && bh->b_blocknr != 0) {
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
}
}
unlock_page(page);
diff --git a/fs/reiserfs/journal.c b/fs/reiserfs/journal.c
index ee74c6cddbbe..68cbaba7b2e6 100644
--- a/fs/reiserfs/journal.c
+++ b/fs/reiserfs/journal.c
@@ -1111,7 +1111,7 @@ static int flush_commit_list(struct super_block *s,
if (likely(!retval && !reiserfs_is_journal_aborted (journal))) {
if (buffer_dirty(jl->j_commit_bh))
BUG();
- mark_buffer_dirty(jl->j_commit_bh) ;
+ mark_buffer_dirty(NULL, jl->j_commit_bh);
depth = reiserfs_write_unlock_nested(s);
if (reiserfs_barrier_flush(s))
__sync_dirty_buffer(jl->j_commit_bh,
@@ -1712,7 +1712,7 @@ static int dirty_one_transaction(struct super_block *s,
set_buffer_journal_restore_dirty(cn->bh);
} else {
set_buffer_journal_test(cn->bh);
- mark_buffer_dirty(cn->bh);
+ mark_buffer_dirty(NULL, cn->bh);
}
}
cn = cn->next;
@@ -3935,7 +3935,7 @@ void reiserfs_restore_prepared_buffer(struct super_block *sb,
bh->b_blocknr);
if (cn && can_dirty(cn)) {
set_buffer_journal_test(bh);
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
}
reiserfs_write_unlock(sb);
}
@@ -4183,7 +4183,7 @@ static int do_journal_end(struct reiserfs_transaction_handle *th, int flags)
* dirty now too. Don't mark the commit block dirty until all the
* others are on disk
*/
- mark_buffer_dirty(d_bh);
+ mark_buffer_dirty(NULL, d_bh);

/*
* first data block is j_start + 1, so add one to
@@ -4212,7 +4212,7 @@ static int do_journal_end(struct reiserfs_transaction_handle *th, int flags)
addr + offset_in_page(cn->bh->b_data),
cn->bh->b_size);
kunmap(page);
- mark_buffer_dirty(tmp_bh);
+ mark_buffer_dirty(NULL, tmp_bh);
jindex++;
set_buffer_journal_dirty(cn->bh);
clear_buffer_journaled(cn->bh);
diff --git a/fs/reiserfs/resize.c b/fs/reiserfs/resize.c
index 2196afda6e28..f80e8a7e7ac4 100644
--- a/fs/reiserfs/resize.c
+++ b/fs/reiserfs/resize.c
@@ -156,7 +156,7 @@ int reiserfs_resize(struct super_block *s, unsigned long block_count_new)
reiserfs_cache_bitmap_metadata(s, bh, bitmap + i);

set_buffer_uptodate(bh);
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
depth = reiserfs_write_unlock_nested(s);
sync_dirty_buffer(bh);
reiserfs_write_lock_nested(s, depth);
diff --git a/fs/sysv/balloc.c b/fs/sysv/balloc.c
index 0e69dbdf7277..bfee0260f869 100644
--- a/fs/sysv/balloc.c
+++ b/fs/sysv/balloc.c
@@ -84,7 +84,7 @@ void sysv_free_block(struct super_block * sb, sysv_zone_t nr)
memset(bh->b_data, 0, sb->s_blocksize);
*(__fs16*)bh->b_data = cpu_to_fs16(sbi, count);
memcpy(get_chunk(sb,bh), blocks, count * sizeof(sysv_zone_t));
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
set_buffer_uptodate(bh);
brelse(bh);
count = 0;
diff --git a/fs/sysv/ialloc.c b/fs/sysv/ialloc.c
index 6c9801986af6..c3f09d9761a8 100644
--- a/fs/sysv/ialloc.c
+++ b/fs/sysv/ialloc.c
@@ -128,7 +128,7 @@ void sysv_free_inode(struct inode * inode)
fs16_add(sbi, sbi->s_sb_total_free_inodes, 1);
dirty_sb(sb);
memset(raw_inode, 0, sizeof(struct sysv_inode));
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
mutex_unlock(&sbi->s_lock);
brelse(bh);
}
diff --git a/fs/sysv/inode.c b/fs/sysv/inode.c
index bec9f79adb25..d7494995157a 100644
--- a/fs/sysv/inode.c
+++ b/fs/sysv/inode.c
@@ -49,7 +49,7 @@ static int sysv_sync_fs(struct super_block *sb, int wait)
if (*sbi->s_sb_state == cpu_to_fs32(sbi, 0x7c269d38 - old_time))
*sbi->s_sb_state = cpu_to_fs32(sbi, 0x7c269d38 - time);
*sbi->s_sb_time = cpu_to_fs32(sbi, time);
- mark_buffer_dirty(sbi->s_bh2);
+ mark_buffer_dirty(NULL, sbi->s_bh2);
}

mutex_unlock(&sbi->s_lock);
@@ -73,9 +73,9 @@ static void sysv_put_super(struct super_block *sb)

if (!sb_rdonly(sb)) {
/* XXX ext2 also updates the state here */
- mark_buffer_dirty(sbi->s_bh1);
+ mark_buffer_dirty(NULL, sbi->s_bh1);
if (sbi->s_bh1 != sbi->s_bh2)
- mark_buffer_dirty(sbi->s_bh2);
+ mark_buffer_dirty(NULL, sbi->s_bh2);
}

brelse(sbi->s_bh1);
@@ -265,7 +265,7 @@ static int __sysv_write_inode(struct inode *inode, int wait)
for (block = 0; block < 10+1+1+1; block++)
write3byte(sbi, (u8 *)&si->i_data[block],
&raw_inode->i_data[3*block]);
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
if (wait) {
sync_dirty_buffer(bh);
if (buffer_req(bh) && !buffer_uptodate(bh)) {
diff --git a/fs/sysv/sysv.h b/fs/sysv/sysv.h
index e913698779c0..3a3b5c16095a 100644
--- a/fs/sysv/sysv.h
+++ b/fs/sysv/sysv.h
@@ -116,9 +116,9 @@ static inline void dirty_sb(struct super_block *sb)
{
struct sysv_sb_info *sbi = SYSV_SB(sb);

- mark_buffer_dirty(sbi->s_bh1);
+ mark_buffer_dirty(NULL, sbi->s_bh1);
if (sbi->s_bh1 != sbi->s_bh2)
- mark_buffer_dirty(sbi->s_bh2);
+ mark_buffer_dirty(NULL, sbi->s_bh2);
}


diff --git a/fs/udf/balloc.c b/fs/udf/balloc.c
index 1b961b1d9699..9fa31c59835f 100644
--- a/fs/udf/balloc.c
+++ b/fs/udf/balloc.c
@@ -157,7 +157,7 @@ static void udf_bitmap_free_blocks(struct super_block *sb,
}
}
udf_add_free_space(sb, sbi->s_partition, count);
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
if (overflow) {
block += count;
count = overflow;
@@ -209,7 +209,7 @@ static int udf_bitmap_prealloc_blocks(struct super_block *sb,
bit++;
block++;
}
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
} while (block_count > 0);

out:
@@ -332,7 +332,7 @@ static udf_pblk_t udf_bitmap_new_block(struct super_block *sb,
goto repeat;
}

- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);

udf_add_free_space(sb, partition, -1);
mutex_unlock(&sbi->s_alloc_mutex);
diff --git a/fs/udf/inode.c b/fs/udf/inode.c
index 56cf8e70d298..6194f4c4bf12 100644
--- a/fs/udf/inode.c
+++ b/fs/udf/inode.c
@@ -1817,7 +1817,7 @@ static int udf_update_inode(struct inode *inode, int do_sync)
unlock_buffer(bh);

/* write the data blocks */
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
if (do_sync) {
sync_dirty_buffer(bh);
if (buffer_write_io_error(bh)) {
diff --git a/fs/udf/partition.c b/fs/udf/partition.c
index 090baff83990..0e4e05a41bee 100644
--- a/fs/udf/partition.c
+++ b/fs/udf/partition.c
@@ -204,7 +204,7 @@ int udf_relocate_blocks(struct super_block *sb, long old_block, long *new_block)
reallocationTableLen *
sizeof(struct sparingEntry);
udf_update_tag((char *)st, len);
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
}
*new_block = le32_to_cpu(
entry->mappedLocation) +
@@ -250,7 +250,7 @@ int udf_relocate_blocks(struct super_block *sb, long old_block, long *new_block)
sizeof(struct sparingTable) +
reallocationTableLen *
sizeof(struct sparingEntry));
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
}
*new_block =
le32_to_cpu(
diff --git a/fs/udf/super.c b/fs/udf/super.c
index f73239a9a97d..79c2bfd32986 100644
--- a/fs/udf/super.c
+++ b/fs/udf/super.c
@@ -2001,7 +2001,7 @@ static void udf_open_lvid(struct super_block *sb)
le16_to_cpu(lvid->descTag.descCRCLength)));

lvid->descTag.tagChecksum = udf_tag_checksum(&lvid->descTag);
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
sbi->s_lvid_dirty = 0;
mutex_unlock(&sbi->s_alloc_mutex);
/* Make opening of filesystem visible on the media immediately */
@@ -2047,7 +2047,7 @@ static void udf_close_lvid(struct super_block *sb)
* the buffer as !uptodate
*/
set_buffer_uptodate(bh);
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
sbi->s_lvid_dirty = 0;
mutex_unlock(&sbi->s_alloc_mutex);
/* Make closing of filesystem visible on the media immediately */
@@ -2076,7 +2076,7 @@ u64 lvid_get_unique_id(struct super_block *sb)
uniqueID += 16;
lvhd->uniqueID = cpu_to_le64(uniqueID);
mutex_unlock(&sbi->s_alloc_mutex);
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);

return ret;
}
@@ -2351,7 +2351,7 @@ static int udf_sync_fs(struct super_block *sb, int wait)
* Blockdevice will be synced later so we don't have to submit
* the buffer for IO
*/
- mark_buffer_dirty(sbi->s_lvid_bh);
+ mark_buffer_dirty(NULL, sbi->s_lvid_bh);
sbi->s_lvid_dirty = 0;
}
mutex_unlock(&sbi->s_alloc_mutex);
diff --git a/fs/ufs/balloc.c b/fs/ufs/balloc.c
index e727ee07dbe4..3648422218dc 100644
--- a/fs/ufs/balloc.c
+++ b/fs/ufs/balloc.c
@@ -311,7 +311,7 @@ static void ufs_change_blocknr(struct inode *inode, sector_t beg,

bh->b_blocknr = newb + pos;
clean_bdev_bh_alias(bh);
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
++j;
bh = bh->b_this_page;
} while (bh != head);
@@ -333,7 +333,7 @@ static void ufs_clear_frags(struct inode *inode, sector_t beg, unsigned int n,
lock_buffer(bh);
memset(bh->b_data, 0, inode->i_sb->s_blocksize);
set_buffer_uptodate(bh);
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
unlock_buffer(bh);
if (IS_SYNC(inode) || sync)
sync_dirty_buffer(bh);
diff --git a/fs/ufs/ialloc.c b/fs/ufs/ialloc.c
index e1ef0f0a1353..3a6dd9eea6a9 100644
--- a/fs/ufs/ialloc.c
+++ b/fs/ufs/ialloc.c
@@ -144,7 +144,7 @@ static void ufs2_init_inodes_chunk(struct super_block *sb,
lock_buffer(bh);
memset(bh->b_data, 0, sb->s_blocksize);
set_buffer_uptodate(bh);
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
unlock_buffer(bh);
if (sb->s_flags & SB_SYNCHRONOUS)
sync_dirty_buffer(bh);
@@ -328,7 +328,7 @@ struct inode *ufs_new_inode(struct inode *dir, umode_t mode)
ktime_get_real_ts64(&ts);
ufs2_inode->ui_birthtime = cpu_to_fs64(sb, ts.tv_sec);
ufs2_inode->ui_birthnsec = cpu_to_fs32(sb, ts.tv_nsec);
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
unlock_buffer(bh);
if (sb->s_flags & SB_SYNCHRONOUS)
sync_dirty_buffer(bh);
diff --git a/fs/ufs/inode.c b/fs/ufs/inode.c
index fcaa60bfad49..c96630059d9e 100644
--- a/fs/ufs/inode.c
+++ b/fs/ufs/inode.c
@@ -375,7 +375,7 @@ ufs_inode_getblock(struct inode *inode, u64 ind_block,
if (new)
*new = 1;

- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
if (IS_SYNC(inode))
sync_dirty_buffer(bh);
inode->i_ctime = current_time(inode);
@@ -829,7 +829,7 @@ static int ufs_update_inode(struct inode * inode, int do_sync)
ufs1_update_inode(inode, ufs_inode + ufs_inotofsbo(inode->i_ino));
}

- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
if (do_sync)
sync_dirty_buffer(bh);
brelse (bh);
@@ -1095,7 +1095,7 @@ static int ufs_alloc_lastblock(struct inode *inode, loff_t size)
* if it maped to hole, it already contains zeroes
*/
set_buffer_uptodate(bh);
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
set_page_dirty(lastpage);
}

@@ -1107,7 +1107,7 @@ static int ufs_alloc_lastblock(struct inode *inode, loff_t size)
lock_buffer(bh);
memset(bh->b_data, 0, sb->s_blocksize);
set_buffer_uptodate(bh);
- mark_buffer_dirty(bh);
+ mark_buffer_dirty(NULL, bh);
unlock_buffer(bh);
sync_dirty_buffer(bh);
brelse(bh);
diff --git a/fs/ufs/util.c b/fs/ufs/util.c
index e8b3d6b70ca9..131f6ad2311f 100644
--- a/fs/ufs/util.c
+++ b/fs/ufs/util.c
@@ -96,7 +96,7 @@ void ubh_mark_buffer_dirty (struct ufs_buffer_head * ubh)
if (!ubh)
return;
for ( i = 0; i < ubh->count; i++ )
- mark_buffer_dirty (ubh->bh[i]);
+ mark_buffer_dirty(NULL, ubh->bh[i]);
}

void ubh_mark_buffer_uptodate (struct ufs_buffer_head * ubh, int flag)
diff --git a/include/linux/buffer_head.h b/include/linux/buffer_head.h
index 6c355f43b46b..5e77654f8e81 100644
--- a/include/linux/buffer_head.h
+++ b/include/linux/buffer_head.h
@@ -175,7 +175,7 @@ void buffer_check_dirty_writeback(struct page *page,
* Declarations
*/

-void mark_buffer_dirty(struct buffer_head *bh);
+void mark_buffer_dirty(struct address_space *, struct buffer_head *);
void mark_buffer_write_io_error(struct address_space *mapping,
struct page *page, struct buffer_head *bh);
void touch_buffer(struct buffer_head *bh);
--
2.14.3