Lines Matching refs:sb
63 static void jfs_handle_error(struct super_block *sb) in jfs_handle_error() argument
65 struct jfs_sb_info *sbi = JFS_SBI(sb); in jfs_handle_error()
67 if (sb_rdonly(sb)) in jfs_handle_error()
70 updateSuper(sb, FM_DIRTY); in jfs_handle_error()
74 sb->s_id); in jfs_handle_error()
77 sb->s_id); in jfs_handle_error()
78 sb->s_flags |= SB_RDONLY; in jfs_handle_error()
84 void jfs_error(struct super_block *sb, const char *fmt, ...) in jfs_error() argument
95 sb->s_id, __builtin_return_address(0), &vaf); in jfs_error()
99 jfs_handle_error(sb); in jfs_error()
102 static struct inode *jfs_alloc_inode(struct super_block *sb) in jfs_alloc_inode() argument
158 static int jfs_quota_off(struct super_block *sb, int type);
159 static int jfs_quota_on(struct super_block *sb, int type, int format_id,
162 static void jfs_quota_off_umount(struct super_block *sb) in jfs_quota_off_umount() argument
167 jfs_quota_off(sb, type); in jfs_quota_off_umount()
181 static inline void jfs_quota_off_umount(struct super_block *sb) in jfs_quota_off_umount() argument
186 static void jfs_put_super(struct super_block *sb) in jfs_put_super() argument
188 struct jfs_sb_info *sbi = JFS_SBI(sb); in jfs_put_super()
193 jfs_quota_off_umount(sb); in jfs_put_super()
195 rc = jfs_umount(sb); in jfs_put_super()
234 static int parse_options(char *options, struct super_block *sb, s64 *newLVSize, in parse_options() argument
239 struct jfs_sb_info *sbi = JFS_SBI(sb); in parse_options()
288 *newLVSize = i_size_read(sb->s_bdev->bd_inode) >> in parse_options()
289 sb->s_blocksize_bits; in parse_options()
378 struct request_queue *q = bdev_get_queue(sb->s_bdev); in parse_options()
397 struct request_queue *q = bdev_get_queue(sb->s_bdev); in parse_options()
431 static int jfs_remount(struct super_block *sb, int *flags, char *data) in jfs_remount() argument
435 int flag = JFS_SBI(sb)->flag; in jfs_remount()
438 sync_filesystem(sb); in jfs_remount()
439 if (!parse_options(data, sb, &newLVSize, &flag)) in jfs_remount()
443 if (sb_rdonly(sb)) { in jfs_remount()
447 rc = jfs_extendfs(sb, newLVSize, 0); in jfs_remount()
452 if (sb_rdonly(sb) && !(*flags & SB_RDONLY)) { in jfs_remount()
457 truncate_inode_pages(JFS_SBI(sb)->direct_inode->i_mapping, 0); in jfs_remount()
459 JFS_SBI(sb)->flag = flag; in jfs_remount()
460 ret = jfs_mount_rw(sb, 1); in jfs_remount()
463 sb->s_flags &= ~SB_RDONLY; in jfs_remount()
465 dquot_resume(sb, -1); in jfs_remount()
468 if (!sb_rdonly(sb) && (*flags & SB_RDONLY)) { in jfs_remount()
469 rc = dquot_suspend(sb, -1); in jfs_remount()
472 rc = jfs_umount_rw(sb); in jfs_remount()
473 JFS_SBI(sb)->flag = flag; in jfs_remount()
476 if ((JFS_SBI(sb)->flag & JFS_NOINTEGRITY) != (flag & JFS_NOINTEGRITY)) in jfs_remount()
477 if (!sb_rdonly(sb)) { in jfs_remount()
478 rc = jfs_umount_rw(sb); in jfs_remount()
482 JFS_SBI(sb)->flag = flag; in jfs_remount()
483 ret = jfs_mount_rw(sb, 1); in jfs_remount()
486 JFS_SBI(sb)->flag = flag; in jfs_remount()
491 static int jfs_fill_super(struct super_block *sb, void *data, int silent) in jfs_fill_super() argument
499 jfs_info("In jfs_read_super: s_flags=0x%lx", sb->s_flags); in jfs_fill_super()
505 sb->s_fs_info = sbi; in jfs_fill_super()
506 sb->s_max_links = JFS_LINK_MAX; in jfs_fill_super()
507 sb->s_time_min = 0; in jfs_fill_super()
508 sb->s_time_max = U32_MAX; in jfs_fill_super()
509 sbi->sb = sb; in jfs_fill_super()
517 if (!parse_options((char *) data, sb, &newLVSize, &flag)) in jfs_fill_super()
522 sb->s_flags |= SB_POSIXACL; in jfs_fill_super()
533 sb_set_blocksize(sb, PSIZE); in jfs_fill_super()
538 sb->s_op = &jfs_super_operations; in jfs_fill_super()
539 sb->s_export_op = &jfs_export_operations; in jfs_fill_super()
540 sb->s_xattr = jfs_xattr_handlers; in jfs_fill_super()
542 sb->dq_op = &dquot_operations; in jfs_fill_super()
543 sb->s_qcop = &jfs_quotactl_ops; in jfs_fill_super()
544 sb->s_quota_types = QTYPE_MASK_USR | QTYPE_MASK_GRP; in jfs_fill_super()
550 inode = new_inode(sb); in jfs_fill_super()
556 inode->i_size = i_size_read(sb->s_bdev->bd_inode); in jfs_fill_super()
563 rc = jfs_mount(sb); in jfs_fill_super()
569 if (sb_rdonly(sb)) in jfs_fill_super()
572 rc = jfs_mount_rw(sb, 0); in jfs_fill_super()
582 sb->s_magic = JFS_SUPER_MAGIC; in jfs_fill_super()
585 sb->s_d_op = &jfs_ci_dentry_operations; in jfs_fill_super()
587 inode = jfs_iget(sb, ROOT_I); in jfs_fill_super()
592 sb->s_root = d_make_root(inode); in jfs_fill_super()
593 if (!sb->s_root) in jfs_fill_super()
599 sb->s_maxbytes = min(((loff_t)sb->s_blocksize) << 40, MAX_LFS_FILESIZE); in jfs_fill_super()
600 sb->s_time_gran = 1; in jfs_fill_super()
607 rc = jfs_umount(sb); in jfs_fill_super()
623 static int jfs_freeze(struct super_block *sb) in jfs_freeze() argument
625 struct jfs_sb_info *sbi = JFS_SBI(sb); in jfs_freeze()
629 if (!sb_rdonly(sb)) { in jfs_freeze()
630 txQuiesce(sb); in jfs_freeze()
633 jfs_error(sb, "lmLogShutdown failed\n"); in jfs_freeze()
636 txResume(sb); in jfs_freeze()
640 rc = updateSuper(sb, FM_CLEAN); in jfs_freeze()
653 static int jfs_unfreeze(struct super_block *sb) in jfs_unfreeze() argument
655 struct jfs_sb_info *sbi = JFS_SBI(sb); in jfs_unfreeze()
659 if (!sb_rdonly(sb)) { in jfs_unfreeze()
660 rc = updateSuper(sb, FM_MOUNT); in jfs_unfreeze()
662 jfs_error(sb, "updateSuper failed\n"); in jfs_unfreeze()
667 jfs_error(sb, "lmLogInit failed\n"); in jfs_unfreeze()
669 txResume(sb); in jfs_unfreeze()
680 static int jfs_sync_fs(struct super_block *sb, int wait) in jfs_sync_fs() argument
682 struct jfs_log *log = JFS_SBI(sb)->log; in jfs_sync_fs()
690 dquot_writeback_dquots(sb, -1); in jfs_sync_fs()
736 static ssize_t jfs_quota_read(struct super_block *sb, int type, char *data, in jfs_quota_read() argument
739 struct inode *inode = sb_dqopt(sb)->files[type]; in jfs_quota_read()
740 sector_t blk = off >> sb->s_blocksize_bits; in jfs_quota_read()
742 int offset = off & (sb->s_blocksize - 1); in jfs_quota_read()
755 tocopy = sb->s_blocksize - offset < toread ? in jfs_quota_read()
756 sb->s_blocksize - offset : toread; in jfs_quota_read()
766 bh = sb_bread(sb, tmp_bh.b_blocknr); in jfs_quota_read()
781 static ssize_t jfs_quota_write(struct super_block *sb, int type, in jfs_quota_write() argument
784 struct inode *inode = sb_dqopt(sb)->files[type]; in jfs_quota_write()
785 sector_t blk = off >> sb->s_blocksize_bits; in jfs_quota_write()
787 int offset = off & (sb->s_blocksize - 1); in jfs_quota_write()
795 tocopy = sb->s_blocksize - offset < towrite ? in jfs_quota_write()
796 sb->s_blocksize - offset : towrite; in jfs_quota_write()
803 if (offset || tocopy != sb->s_blocksize) in jfs_quota_write()
804 bh = sb_bread(sb, tmp_bh.b_blocknr); in jfs_quota_write()
806 bh = sb_getblk(sb, tmp_bh.b_blocknr); in jfs_quota_write()
841 static int jfs_quota_on(struct super_block *sb, int type, int format_id, in jfs_quota_on() argument
847 err = dquot_quota_on(sb, type, format_id, path); in jfs_quota_on()
862 static int jfs_quota_off(struct super_block *sb, int type) in jfs_quota_off() argument
864 struct inode *inode = sb_dqopt(sb)->files[type]; in jfs_quota_off()
870 err = dquot_quota_off(sb, type); in jfs_quota_off()
883 return dquot_quota_off(sb, type); in jfs_quota_off()