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()
499 if (!new_valid_dev(sb->s_bdev->bd_dev)) in jfs_fill_super()
506 sb->s_fs_info = sbi; in jfs_fill_super()
507 sb->s_max_links = JFS_LINK_MAX; in jfs_fill_super()
508 sbi->sb = sb; in jfs_fill_super()
516 if (!parse_options((char *) data, sb, &newLVSize, &flag)) in jfs_fill_super()
521 sb->s_flags |= MS_POSIXACL; in jfs_fill_super()
532 sb_set_blocksize(sb, PSIZE); in jfs_fill_super()
537 sb->s_op = &jfs_super_operations; in jfs_fill_super()
538 sb->s_export_op = &jfs_export_operations; in jfs_fill_super()
539 sb->s_xattr = jfs_xattr_handlers; in jfs_fill_super()
541 sb->dq_op = &dquot_operations; in jfs_fill_super()
542 sb->s_qcop = &dquot_quotactl_ops; in jfs_fill_super()
543 sb->s_quota_types = QTYPE_MASK_USR | QTYPE_MASK_GRP; in jfs_fill_super()
549 inode = new_inode(sb); in jfs_fill_super()
555 inode->i_size = sb->s_bdev->bd_inode->i_size; in jfs_fill_super()
562 rc = jfs_mount(sb); in jfs_fill_super()
568 if (sb->s_flags & MS_RDONLY) in jfs_fill_super()
571 rc = jfs_mount_rw(sb, 0); in jfs_fill_super()
581 sb->s_magic = JFS_SUPER_MAGIC; in jfs_fill_super()
584 sb->s_d_op = &jfs_ci_dentry_operations; in jfs_fill_super()
586 inode = jfs_iget(sb, ROOT_I); in jfs_fill_super()
591 sb->s_root = d_make_root(inode); in jfs_fill_super()
592 if (!sb->s_root) in jfs_fill_super()
596 sb->s_maxbytes = ((u64) sb->s_blocksize) << 40; in jfs_fill_super()
602 sb->s_maxbytes = min(((u64) PAGE_CACHE_SIZE << 32) - 1, in jfs_fill_super()
603 (u64)sb->s_maxbytes); in jfs_fill_super()
605 sb->s_time_gran = 1; in jfs_fill_super()
612 rc = jfs_umount(sb); in jfs_fill_super()
628 static int jfs_freeze(struct super_block *sb) in jfs_freeze() argument
630 struct jfs_sb_info *sbi = JFS_SBI(sb); in jfs_freeze()
634 if (!(sb->s_flags & MS_RDONLY)) { in jfs_freeze()
635 txQuiesce(sb); in jfs_freeze()
638 jfs_error(sb, "lmLogShutdown failed\n"); in jfs_freeze()
641 txResume(sb); in jfs_freeze()
645 rc = updateSuper(sb, FM_CLEAN); in jfs_freeze()
658 static int jfs_unfreeze(struct super_block *sb) in jfs_unfreeze() argument
660 struct jfs_sb_info *sbi = JFS_SBI(sb); in jfs_unfreeze()
664 if (!(sb->s_flags & MS_RDONLY)) { in jfs_unfreeze()
665 rc = updateSuper(sb, FM_MOUNT); in jfs_unfreeze()
667 jfs_error(sb, "updateSuper failed\n"); in jfs_unfreeze()
672 jfs_error(sb, "lmLogInit failed\n"); in jfs_unfreeze()
674 txResume(sb); in jfs_unfreeze()
685 static int jfs_sync_fs(struct super_block *sb, int wait) in jfs_sync_fs() argument
687 struct jfs_log *log = JFS_SBI(sb)->log; in jfs_sync_fs()
695 dquot_writeback_dquots(sb, -1); in jfs_sync_fs()
741 static ssize_t jfs_quota_read(struct super_block *sb, int type, char *data, in jfs_quota_read() argument
744 struct inode *inode = sb_dqopt(sb)->files[type]; in jfs_quota_read()
745 sector_t blk = off >> sb->s_blocksize_bits; in jfs_quota_read()
747 int offset = off & (sb->s_blocksize - 1); in jfs_quota_read()
760 tocopy = sb->s_blocksize - offset < toread ? in jfs_quota_read()
761 sb->s_blocksize - offset : toread; in jfs_quota_read()
771 bh = sb_bread(sb, tmp_bh.b_blocknr); in jfs_quota_read()
786 static ssize_t jfs_quota_write(struct super_block *sb, int type, in jfs_quota_write() argument
789 struct inode *inode = sb_dqopt(sb)->files[type]; in jfs_quota_write()
790 sector_t blk = off >> sb->s_blocksize_bits; in jfs_quota_write()
792 int offset = off & (sb->s_blocksize - 1); in jfs_quota_write()
800 tocopy = sb->s_blocksize - offset < towrite ? in jfs_quota_write()
801 sb->s_blocksize - offset : towrite; in jfs_quota_write()
808 if (offset || tocopy != sb->s_blocksize) in jfs_quota_write()
809 bh = sb_bread(sb, tmp_bh.b_blocknr); in jfs_quota_write()
811 bh = sb_getblk(sb, tmp_bh.b_blocknr); in jfs_quota_write()