Lines Matching refs:sb
26 void __adfs_error(struct super_block *sb, const char *function, const char *fmt, ...) in __adfs_error() argument
36 sb->s_id, function ? ": " : "", in __adfs_error()
73 static unsigned char adfs_calczonecheck(struct super_block *sb, unsigned char *map) in adfs_calczonecheck() argument
79 for (i = sb->s_blocksize - 4; i; i -= 4) { in adfs_calczonecheck()
97 static int adfs_checkmap(struct super_block *sb, struct adfs_discmap *dm) in adfs_checkmap() argument
102 for (i = 0; i < ADFS_SB(sb)->s_map_size; i++) { in adfs_checkmap()
107 if (adfs_calczonecheck(sb, map) != map[0]) { in adfs_checkmap()
108 adfs_error(sb, "zone %d fails zonecheck", i); in adfs_checkmap()
114 adfs_error(sb, "crosscheck != 0xff"); in adfs_checkmap()
118 static void adfs_put_super(struct super_block *sb) in adfs_put_super() argument
121 struct adfs_sb_info *asb = ADFS_SB(sb); in adfs_put_super()
158 static int parse_options(struct super_block *sb, char *options) in parse_options() argument
161 struct adfs_sb_info *asb = ADFS_SB(sb); in parse_options()
213 static int adfs_remount(struct super_block *sb, int *flags, char *data) in adfs_remount() argument
215 sync_filesystem(sb); in adfs_remount()
217 return parse_options(sb, data); in adfs_remount()
222 struct super_block *sb = dentry->d_sb; in adfs_statfs() local
223 struct adfs_sb_info *sbi = ADFS_SB(sb); in adfs_statfs()
224 u64 id = huge_encode_dev(sb->s_bdev->bd_dev); in adfs_statfs()
228 buf->f_bsize = sb->s_blocksize; in adfs_statfs()
232 buf->f_bfree = adfs_map_free(sb); in adfs_statfs()
242 static struct inode *adfs_alloc_inode(struct super_block *sb) in adfs_alloc_inode() argument
301 static struct adfs_discmap *adfs_read_map(struct super_block *sb, struct adfs_discrecord *dr) in adfs_read_map() argument
306 struct adfs_sb_info *asb = ADFS_SB(sb); in adfs_read_map()
318 adfs_error(sb, "not enough memory"); in adfs_read_map()
326 dm[zone].dm_bh = sb_bread(sb, map_addr); in adfs_read_map()
329 adfs_error(sb, "unable to read map"); in adfs_read_map()
342 if (adfs_checkmap(sb, dm)) in adfs_read_map()
345 adfs_error(sb, "map corrupted"); in adfs_read_map()
365 static int adfs_fill_super(struct super_block *sb, void *data, int silent) in adfs_fill_super() argument
375 sb->s_flags |= MS_NODIRATIME; in adfs_fill_super()
380 sb->s_fs_info = asb; in adfs_fill_super()
389 if (parse_options(sb, data)) in adfs_fill_super()
392 sb_set_blocksize(sb, BLOCK_SIZE); in adfs_fill_super()
393 if (!(bh = sb_bread(sb, ADFS_DISCRECORD / BLOCK_SIZE))) { in adfs_fill_super()
394 adfs_error(sb, "unable to read superblock"); in adfs_fill_super()
404 "%s.\n", sb->s_id); in adfs_fill_super()
417 "%s.\n", sb->s_id); in adfs_fill_super()
423 if (sb_set_blocksize(sb, 1 << dr->log2secsize)) { in adfs_fill_super()
424 bh = sb_bread(sb, ADFS_DISCRECORD / sb->s_blocksize); in adfs_fill_super()
426 adfs_error(sb, "couldn't read superblock on " in adfs_fill_super()
431 b_data = bh->b_data + (ADFS_DISCRECORD % sb->s_blocksize); in adfs_fill_super()
433 adfs_error(sb, "disc record mismatch, very weird!"); in adfs_fill_super()
441 "%s.\n", sb->s_id); in adfs_fill_super()
450 sb->s_magic = ADFS_SUPER_MAGIC; in adfs_fill_super()
454 asb->s_size = adfs_discsize(dr, sb->s_blocksize_bits); in adfs_fill_super()
458 asb->s_map = adfs_read_map(sb, dr); in adfs_fill_super()
469 sb->s_op = &adfs_sops; in adfs_fill_super()
502 sb->s_d_op = &adfs_dentry_operations; in adfs_fill_super()
503 root = adfs_iget(sb, &root_obj); in adfs_fill_super()
504 sb->s_root = d_make_root(root); in adfs_fill_super()
505 if (!sb->s_root) { in adfs_fill_super()
510 adfs_error(sb, "get root inode failed\n"); in adfs_fill_super()
519 sb->s_fs_info = NULL; in adfs_fill_super()