Lines Matching refs:sb

10 static __le32 ext4_mmp_csum(struct super_block *sb, struct mmp_struct *mmp)  in ext4_mmp_csum()  argument
12 struct ext4_sb_info *sbi = EXT4_SB(sb); in ext4_mmp_csum()
21 static int ext4_mmp_csum_verify(struct super_block *sb, struct mmp_struct *mmp) in ext4_mmp_csum_verify() argument
23 if (!ext4_has_metadata_csum(sb)) in ext4_mmp_csum_verify()
26 return mmp->mmp_checksum == ext4_mmp_csum(sb, mmp); in ext4_mmp_csum_verify()
29 static void ext4_mmp_csum_set(struct super_block *sb, struct mmp_struct *mmp) in ext4_mmp_csum_set() argument
31 if (!ext4_has_metadata_csum(sb)) in ext4_mmp_csum_set()
34 mmp->mmp_checksum = ext4_mmp_csum(sb, mmp); in ext4_mmp_csum_set()
41 static int write_mmp_block(struct super_block *sb, struct buffer_head *bh) in write_mmp_block() argument
49 sb_start_write(sb); in write_mmp_block()
50 ext4_mmp_csum_set(sb, mmp); in write_mmp_block()
57 sb_end_write(sb); in write_mmp_block()
68 static int read_mmp_block(struct super_block *sb, struct buffer_head **bh, in read_mmp_block() argument
81 *bh = sb_getblk(sb, mmp_block); in read_mmp_block()
103 else if (!ext4_mmp_csum_verify(sb, mmp)) in read_mmp_block()
109 ext4_warning(sb, "Error %d while reading MMP block %llu", in read_mmp_block()
117 void __dump_mmp_msg(struct super_block *sb, struct mmp_struct *mmp, in __dump_mmp_msg() argument
120 __ext4_warning(sb, function, line, "%s", msg); in __dump_mmp_msg()
121 __ext4_warning(sb, function, line, in __dump_mmp_msg()
133 struct super_block *sb = ((struct mmpd_data *) data)->sb; in kmmpd() local
135 struct ext4_super_block *es = EXT4_SB(sb)->s_es; in kmmpd()
169 retval = write_mmp_block(sb, bh); in kmmpd()
176 ext4_error(sb, "Error writing to MMP block"); in kmmpd()
182 ext4_warning(sb, "kmmpd being stopped since MMP feature" in kmmpd()
184 EXT4_SB(sb)->s_mmp_tsk = NULL; in kmmpd()
188 if (sb->s_flags & MS_RDONLY) { in kmmpd()
189 ext4_warning(sb, "kmmpd being stopped since filesystem " in kmmpd()
191 EXT4_SB(sb)->s_mmp_tsk = NULL; in kmmpd()
210 retval = read_mmp_block(sb, &bh_check, mmp_block); in kmmpd()
212 ext4_error(sb, "error reading MMP data: %d", in kmmpd()
215 EXT4_SB(sb)->s_mmp_tsk = NULL; in kmmpd()
223 dump_mmp_msg(sb, mmp_check, in kmmpd()
227 ext4_error(sb, "abort"); in kmmpd()
249 retval = write_mmp_block(sb, bh); in kmmpd()
275 int ext4_multi_mount_protect(struct super_block *sb, in ext4_multi_mount_protect() argument
278 struct ext4_super_block *es = EXT4_SB(sb)->s_es; in ext4_multi_mount_protect()
289 ext4_warning(sb, "Invalid MMP block in superblock"); in ext4_multi_mount_protect()
293 retval = read_mmp_block(sb, &bh, mmp_block); in ext4_multi_mount_protect()
314 dump_mmp_msg(sb, mmp, "fsck is running on the filesystem"); in ext4_multi_mount_protect()
323 ext4_warning(sb, "MMP interval %u higher than expected, please" in ext4_multi_mount_protect()
327 ext4_warning(sb, "MMP startup interrupted, failing mount\n"); in ext4_multi_mount_protect()
331 retval = read_mmp_block(sb, &bh, mmp_block); in ext4_multi_mount_protect()
336 dump_mmp_msg(sb, mmp, in ext4_multi_mount_protect()
348 retval = write_mmp_block(sb, bh); in ext4_multi_mount_protect()
356 ext4_warning(sb, "MMP startup interrupted, failing mount\n"); in ext4_multi_mount_protect()
360 retval = read_mmp_block(sb, &bh, mmp_block); in ext4_multi_mount_protect()
365 dump_mmp_msg(sb, mmp, in ext4_multi_mount_protect()
372 ext4_warning(sb, "not enough memory for mmpd_data"); in ext4_multi_mount_protect()
375 mmpd_data->sb = sb; in ext4_multi_mount_protect()
381 EXT4_SB(sb)->s_mmp_tsk = kthread_run(kmmpd, mmpd_data, "kmmpd-%s", in ext4_multi_mount_protect()
384 if (IS_ERR(EXT4_SB(sb)->s_mmp_tsk)) { in ext4_multi_mount_protect()
385 EXT4_SB(sb)->s_mmp_tsk = NULL; in ext4_multi_mount_protect()
387 ext4_warning(sb, "Unable to create kmmpd thread for %s.", in ext4_multi_mount_protect()
388 sb->s_id); in ext4_multi_mount_protect()