Lines Matching refs:sb
74 static void jfs_handle_error(struct super_block *sb) in jfs_handle_error() argument
76 struct jfs_sb_info *sbi = JFS_SBI(sb); in jfs_handle_error()
78 if (sb->s_flags & MS_RDONLY) in jfs_handle_error()
81 updateSuper(sb, FM_DIRTY); in jfs_handle_error()
85 sb->s_id); in jfs_handle_error()
88 sb->s_id); in jfs_handle_error()
89 sb->s_flags |= MS_RDONLY; in jfs_handle_error()
95 void jfs_error(struct super_block *sb, const char *fmt, ...) in jfs_error() argument
106 sb->s_id, __builtin_return_address(0), &vaf); in jfs_error()
110 jfs_handle_error(sb); in jfs_error()
113 static struct inode *jfs_alloc_inode(struct super_block *sb) in jfs_alloc_inode() argument
184 static void jfs_put_super(struct super_block *sb) in jfs_put_super() argument
186 struct jfs_sb_info *sbi = JFS_SBI(sb); in jfs_put_super()
191 dquot_disable(sb, -1, DQUOT_USAGE_ENABLED | DQUOT_LIMITS_ENABLED); in jfs_put_super()
193 rc = jfs_umount(sb); in jfs_put_super()
232 static int parse_options(char *options, struct super_block *sb, s64 *newLVSize, in parse_options() argument
237 struct jfs_sb_info *sbi = JFS_SBI(sb); in parse_options()
286 *newLVSize = sb->s_bdev->bd_inode->i_size >> in parse_options()
287 sb->s_blocksize_bits; in parse_options()
376 struct request_queue *q = bdev_get_queue(sb->s_bdev); in parse_options()
395 struct request_queue *q = bdev_get_queue(sb->s_bdev); in parse_options()
429 static int jfs_remount(struct super_block *sb, int *flags, char *data) in jfs_remount() argument
433 int flag = JFS_SBI(sb)->flag; in jfs_remount()
436 sync_filesystem(sb); in jfs_remount()
437 if (!parse_options(data, sb, &newLVSize, &flag)) in jfs_remount()
441 if (sb->s_flags & MS_RDONLY) { in jfs_remount()
445 rc = jfs_extendfs(sb, newLVSize, 0); in jfs_remount()
450 if ((sb->s_flags & MS_RDONLY) && !(*flags & MS_RDONLY)) { in jfs_remount()
455 truncate_inode_pages(JFS_SBI(sb)->direct_inode->i_mapping, 0); in jfs_remount()
457 JFS_SBI(sb)->flag = flag; in jfs_remount()
458 ret = jfs_mount_rw(sb, 1); in jfs_remount()
461 sb->s_flags &= ~MS_RDONLY; in jfs_remount()
463 dquot_resume(sb, -1); in jfs_remount()
466 if ((!(sb->s_flags & MS_RDONLY)) && (*flags & MS_RDONLY)) { in jfs_remount()
467 rc = dquot_suspend(sb, -1); in jfs_remount()
470 rc = jfs_umount_rw(sb); in jfs_remount()
471 JFS_SBI(sb)->flag = flag; in jfs_remount()
474 if ((JFS_SBI(sb)->flag & JFS_NOINTEGRITY) != (flag & JFS_NOINTEGRITY)) in jfs_remount()
475 if (!(sb->s_flags & MS_RDONLY)) { in jfs_remount()
476 rc = jfs_umount_rw(sb); in jfs_remount()
480 JFS_SBI(sb)->flag = flag; in jfs_remount()
481 ret = jfs_mount_rw(sb, 1); in jfs_remount()
484 JFS_SBI(sb)->flag = flag; in jfs_remount()
489 static int jfs_fill_super(struct super_block *sb, void *data, int silent) in jfs_fill_super() argument
497 jfs_info("In jfs_read_super: s_flags=0x%lx", sb->s_flags); in jfs_fill_super()
503 sb->s_fs_info = sbi; in jfs_fill_super()
504 sb->s_max_links = JFS_LINK_MAX; in jfs_fill_super()
505 sbi->sb = sb; in jfs_fill_super()
513 if (!parse_options((char *) data, sb, &newLVSize, &flag)) in jfs_fill_super()
518 sb->s_flags |= MS_POSIXACL; in jfs_fill_super()
529 sb_set_blocksize(sb, PSIZE); in jfs_fill_super()
534 sb->s_op = &jfs_super_operations; in jfs_fill_super()
535 sb->s_export_op = &jfs_export_operations; in jfs_fill_super()
536 sb->s_xattr = jfs_xattr_handlers; in jfs_fill_super()
538 sb->dq_op = &dquot_operations; in jfs_fill_super()
539 sb->s_qcop = &dquot_quotactl_ops; in jfs_fill_super()
540 sb->s_quota_types = QTYPE_MASK_USR | QTYPE_MASK_GRP; in jfs_fill_super()
546 inode = new_inode(sb); in jfs_fill_super()
552 inode->i_size = sb->s_bdev->bd_inode->i_size; in jfs_fill_super()
559 rc = jfs_mount(sb); in jfs_fill_super()
565 if (sb->s_flags & MS_RDONLY) in jfs_fill_super()
568 rc = jfs_mount_rw(sb, 0); in jfs_fill_super()
578 sb->s_magic = JFS_SUPER_MAGIC; in jfs_fill_super()
581 sb->s_d_op = &jfs_ci_dentry_operations; in jfs_fill_super()
583 inode = jfs_iget(sb, ROOT_I); in jfs_fill_super()
588 sb->s_root = d_make_root(inode); in jfs_fill_super()
589 if (!sb->s_root) in jfs_fill_super()
593 sb->s_maxbytes = ((u64) sb->s_blocksize) << 40; in jfs_fill_super()
599 sb->s_maxbytes = min(((u64) PAGE_CACHE_SIZE << 32) - 1, in jfs_fill_super()
600 (u64)sb->s_maxbytes); in jfs_fill_super()
602 sb->s_time_gran = 1; in jfs_fill_super()
609 rc = jfs_umount(sb); in jfs_fill_super()
625 static int jfs_freeze(struct super_block *sb) in jfs_freeze() argument
627 struct jfs_sb_info *sbi = JFS_SBI(sb); in jfs_freeze()
631 if (!(sb->s_flags & MS_RDONLY)) { in jfs_freeze()
632 txQuiesce(sb); in jfs_freeze()
635 jfs_error(sb, "lmLogShutdown failed\n"); in jfs_freeze()
638 txResume(sb); in jfs_freeze()
642 rc = updateSuper(sb, FM_CLEAN); in jfs_freeze()
655 static int jfs_unfreeze(struct super_block *sb) in jfs_unfreeze() argument
657 struct jfs_sb_info *sbi = JFS_SBI(sb); in jfs_unfreeze()
661 if (!(sb->s_flags & MS_RDONLY)) { in jfs_unfreeze()
662 rc = updateSuper(sb, FM_MOUNT); in jfs_unfreeze()
664 jfs_error(sb, "updateSuper failed\n"); in jfs_unfreeze()
669 jfs_error(sb, "lmLogInit failed\n"); in jfs_unfreeze()
671 txResume(sb); in jfs_unfreeze()
682 static int jfs_sync_fs(struct super_block *sb, int wait) in jfs_sync_fs() argument
684 struct jfs_log *log = JFS_SBI(sb)->log; in jfs_sync_fs()
692 dquot_writeback_dquots(sb, -1); in jfs_sync_fs()
738 static ssize_t jfs_quota_read(struct super_block *sb, int type, char *data, in jfs_quota_read() argument
741 struct inode *inode = sb_dqopt(sb)->files[type]; in jfs_quota_read()
742 sector_t blk = off >> sb->s_blocksize_bits; in jfs_quota_read()
744 int offset = off & (sb->s_blocksize - 1); in jfs_quota_read()
757 tocopy = sb->s_blocksize - offset < toread ? in jfs_quota_read()
758 sb->s_blocksize - offset : toread; in jfs_quota_read()
768 bh = sb_bread(sb, tmp_bh.b_blocknr); in jfs_quota_read()
783 static ssize_t jfs_quota_write(struct super_block *sb, int type, in jfs_quota_write() argument
786 struct inode *inode = sb_dqopt(sb)->files[type]; in jfs_quota_write()
787 sector_t blk = off >> sb->s_blocksize_bits; in jfs_quota_write()
789 int offset = off & (sb->s_blocksize - 1); in jfs_quota_write()
797 tocopy = sb->s_blocksize - offset < towrite ? in jfs_quota_write()
798 sb->s_blocksize - offset : towrite; in jfs_quota_write()
805 if (offset || tocopy != sb->s_blocksize) in jfs_quota_write()
806 bh = sb_bread(sb, tmp_bh.b_blocknr); in jfs_quota_write()
808 bh = sb_getblk(sb, tmp_bh.b_blocknr); in jfs_quota_write()