Lines Matching refs:sb

99 static struct inode *ufs_nfs_get_inode(struct super_block *sb, u64 ino, u32 generation)
101 struct ufs_sb_private_info *uspi = UFS_SB(sb)->s_uspi;
107 inode = ufs_iget(sb, ino);
117 static struct dentry *ufs_fh_to_dentry(struct super_block *sb, struct fid *fid,
120 return generic_fh_to_dentry(sb, fid, fh_len, fh_type, ufs_nfs_get_inode);
123 static struct dentry *ufs_fh_to_parent(struct super_block *sb, struct fid *fid,
126 return generic_fh_to_parent(sb, fid, fh_len, fh_type, ufs_nfs_get_inode);
150 static void ufs_print_super_stuff(struct super_block *sb,
155 u32 magic = fs32_to_cpu(sb, usb3->fs_magic);
159 if (fs32_to_cpu(sb, usb3->fs_magic) == UFS2_MAGIC) {
161 fs64_to_cpu(sb, usb3->fs_un1.fs_u2.fs_size));
163 fs64_to_cpu(sb, usb3->fs_un1.fs_u2.fs_dsize));
165 fs32_to_cpu(sb, usb1->fs_bsize));
167 fs32_to_cpu(sb, usb1->fs_fsize));
170 fs64_to_cpu(sb, usb2->fs_un.fs_u2.fs_sblockloc));
172 fs64_to_cpu(sb, usb2->fs_un.fs_u2.cs_ndir));
175 fs64_to_cpu(sb, usb2->fs_un.fs_u2.cs_nbfree));
178 fs64_to_cpu(sb, usb3->fs_un1.fs_u2.cs_nifree));
181 fs64_to_cpu(sb, usb3->fs_un1.fs_u2.cs_nffree));
183 fs32_to_cpu(sb, usb3->fs_un2.fs_44.fs_maxsymlinklen));
185 pr_debug(" sblkno: %u\n", fs32_to_cpu(sb, usb1->fs_sblkno));
186 pr_debug(" cblkno: %u\n", fs32_to_cpu(sb, usb1->fs_cblkno));
187 pr_debug(" iblkno: %u\n", fs32_to_cpu(sb, usb1->fs_iblkno));
188 pr_debug(" dblkno: %u\n", fs32_to_cpu(sb, usb1->fs_dblkno));
190 fs32_to_cpu(sb, usb1->fs_cgoffset));
192 ~fs32_to_cpu(sb, usb1->fs_cgmask));
193 pr_debug(" size: %u\n", fs32_to_cpu(sb, usb1->fs_size));
194 pr_debug(" dsize: %u\n", fs32_to_cpu(sb, usb1->fs_dsize));
195 pr_debug(" ncg: %u\n", fs32_to_cpu(sb, usb1->fs_ncg));
196 pr_debug(" bsize: %u\n", fs32_to_cpu(sb, usb1->fs_bsize));
197 pr_debug(" fsize: %u\n", fs32_to_cpu(sb, usb1->fs_fsize));
198 pr_debug(" frag: %u\n", fs32_to_cpu(sb, usb1->fs_frag));
200 fs32_to_cpu(sb, usb1->fs_fragshift));
201 pr_debug(" ~fmask: %u\n", ~fs32_to_cpu(sb, usb1->fs_fmask));
202 pr_debug(" fshift: %u\n", fs32_to_cpu(sb, usb1->fs_fshift));
203 pr_debug(" sbsize: %u\n", fs32_to_cpu(sb, usb1->fs_sbsize));
204 pr_debug(" spc: %u\n", fs32_to_cpu(sb, usb1->fs_spc));
205 pr_debug(" cpg: %u\n", fs32_to_cpu(sb, usb1->fs_cpg));
206 pr_debug(" ipg: %u\n", fs32_to_cpu(sb, usb1->fs_ipg));
207 pr_debug(" fpg: %u\n", fs32_to_cpu(sb, usb1->fs_fpg));
208 pr_debug(" csaddr: %u\n", fs32_to_cpu(sb, usb1->fs_csaddr));
209 pr_debug(" cssize: %u\n", fs32_to_cpu(sb, usb1->fs_cssize));
210 pr_debug(" cgsize: %u\n", fs32_to_cpu(sb, usb1->fs_cgsize));
212 fs32_to_cpu(sb, usb1->fs_fsbtodb));
213 pr_debug(" nrpos: %u\n", fs32_to_cpu(sb, usb3->fs_nrpos));
215 fs32_to_cpu(sb, usb1->fs_cstotal.cs_ndir));
217 fs32_to_cpu(sb, usb1->fs_cstotal.cs_nifree));
219 fs32_to_cpu(sb, usb1->fs_cstotal.cs_nbfree));
221 fs32_to_cpu(sb, usb1->fs_cstotal.cs_nffree));
229 static void ufs_print_cylinder_stuff(struct super_block *sb,
234 pr_debug(" magic: %x\n", fs32_to_cpu(sb, cg->cg_magic));
235 pr_debug(" time: %u\n", fs32_to_cpu(sb, cg->cg_time));
236 pr_debug(" cgx: %u\n", fs32_to_cpu(sb, cg->cg_cgx));
237 pr_debug(" ncyl: %u\n", fs16_to_cpu(sb, cg->cg_ncyl));
238 pr_debug(" niblk: %u\n", fs16_to_cpu(sb, cg->cg_niblk));
239 pr_debug(" ndblk: %u\n", fs32_to_cpu(sb, cg->cg_ndblk));
240 pr_debug(" cs_ndir: %u\n", fs32_to_cpu(sb, cg->cg_cs.cs_ndir));
241 pr_debug(" cs_nbfree: %u\n", fs32_to_cpu(sb, cg->cg_cs.cs_nbfree));
242 pr_debug(" cs_nifree: %u\n", fs32_to_cpu(sb, cg->cg_cs.cs_nifree));
243 pr_debug(" cs_nffree: %u\n", fs32_to_cpu(sb, cg->cg_cs.cs_nffree));
244 pr_debug(" rotor: %u\n", fs32_to_cpu(sb, cg->cg_rotor));
245 pr_debug(" frotor: %u\n", fs32_to_cpu(sb, cg->cg_frotor));
246 pr_debug(" irotor: %u\n", fs32_to_cpu(sb, cg->cg_irotor));
248 fs32_to_cpu(sb, cg->cg_frsum[0]), fs32_to_cpu(sb, cg->cg_frsum[1]),
249 fs32_to_cpu(sb, cg->cg_frsum[2]), fs32_to_cpu(sb, cg->cg_frsum[3]),
250 fs32_to_cpu(sb, cg->cg_frsum[4]), fs32_to_cpu(sb, cg->cg_frsum[5]),
251 fs32_to_cpu(sb, cg->cg_frsum[6]), fs32_to_cpu(sb, cg->cg_frsum[7]));
252 pr_debug(" btotoff: %u\n", fs32_to_cpu(sb, cg->cg_btotoff));
253 pr_debug(" boff: %u\n", fs32_to_cpu(sb, cg->cg_boff));
254 pr_debug(" iuseoff: %u\n", fs32_to_cpu(sb, cg->cg_iusedoff));
255 pr_debug(" freeoff: %u\n", fs32_to_cpu(sb, cg->cg_freeoff));
256 pr_debug(" nextfreeoff: %u\n", fs32_to_cpu(sb, cg->cg_nextfreeoff));
258 fs32_to_cpu(sb, cg->cg_u.cg_44.cg_clustersumoff));
260 fs32_to_cpu(sb, cg->cg_u.cg_44.cg_clusteroff));
262 fs32_to_cpu(sb, cg->cg_u.cg_44.cg_nclusterblks));
266 # define ufs_print_super_stuff(sb, usb1, usb2, usb3) /**/
267 # define ufs_print_cylinder_stuff(sb, cg) /**/
272 void ufs_error (struct super_block * sb, const char * function,
280 uspi = UFS_SB(sb)->s_uspi;
283 if (!sb_rdonly(sb)) {
286 ufs_mark_sb_dirty(sb);
287 sb->s_flags |= SB_RDONLY;
292 switch (UFS_SB(sb)->s_mount_opt & UFS_MOUNT_ONERROR) {
295 sb->s_id, function, &vaf);
301 sb->s_id, function, &vaf);
306 void ufs_panic (struct super_block * sb, const char * function,
314 uspi = UFS_SB(sb)->s_uspi;
317 if (!sb_rdonly(sb)) {
320 ufs_mark_sb_dirty(sb);
325 sb->s_flags |= SB_RDONLY;
327 sb->s_id, function, &vaf);
331 void ufs_warning (struct super_block * sb, const char * function,
341 sb->s_id, function, &vaf);
470 static void ufs_setup_cstotal(struct super_block *sb)
472 struct ufs_sb_info *sbi = UFS_SB(sb);
488 uspi->cs_total.cs_ndir = fs64_to_cpu(sb, usb2->fs_un.fs_u2.cs_ndir);
489 uspi->cs_total.cs_nbfree = fs64_to_cpu(sb, usb2->fs_un.fs_u2.cs_nbfree);
490 uspi->cs_total.cs_nifree = fs64_to_cpu(sb, usb3->fs_un1.fs_u2.cs_nifree);
491 uspi->cs_total.cs_nffree = fs64_to_cpu(sb, usb3->fs_un1.fs_u2.cs_nffree);
493 uspi->cs_total.cs_ndir = fs32_to_cpu(sb, usb1->fs_cstotal.cs_ndir);
494 uspi->cs_total.cs_nbfree = fs32_to_cpu(sb, usb1->fs_cstotal.cs_nbfree);
495 uspi->cs_total.cs_nifree = fs32_to_cpu(sb, usb1->fs_cstotal.cs_nifree);
496 uspi->cs_total.cs_nffree = fs32_to_cpu(sb, usb1->fs_cstotal.cs_nffree);
504 static int ufs_read_cylinder_structures(struct super_block *sb)
506 struct ufs_sb_info *sbi = UFS_SB(sb);
529 ubh = ubh_bread(sb, uspi->s_csaddr + i, size);
557 if (!(sbi->s_ucg[i] = sb_bread(sb, ufs_cgcmin(i))))
559 if (!ufs_cg_chkmagic (sb, (struct ufs_cylinder_group *) sbi->s_ucg[i]->b_data))
562 ufs_print_cylinder_stuff(sb, (struct ufs_cylinder_group *) sbi->s_ucg[i]->b_data);
590 static void ufs_put_cstotal(struct super_block *sb)
592 unsigned mtype = UFS_SB(sb)->s_mount_opt & UFS_MOUNT_UFSTYPE;
593 struct ufs_sb_private_info *uspi = UFS_SB(sb)->s_uspi;
606 cpu_to_fs64(sb, uspi->cs_total.cs_ndir);
608 cpu_to_fs64(sb, uspi->cs_total.cs_nbfree);
610 cpu_to_fs64(sb, uspi->cs_total.cs_nifree);
612 cpu_to_fs64(sb, uspi->cs_total.cs_nffree);
620 cpu_to_fs64(sb, uspi->cs_total.cs_ndir);
622 cpu_to_fs64(sb, uspi->cs_total.cs_nbfree);
624 cpu_to_fs64(sb, uspi->cs_total.cs_nifree);
626 cpu_to_fs64(sb, uspi->cs_total.cs_nffree);
628 usb1->fs_cstotal.cs_ndir = cpu_to_fs32(sb, uspi->cs_total.cs_ndir);
629 usb1->fs_cstotal.cs_nbfree = cpu_to_fs32(sb, uspi->cs_total.cs_nbfree);
630 usb1->fs_cstotal.cs_nifree = cpu_to_fs32(sb, uspi->cs_total.cs_nifree);
631 usb1->fs_cstotal.cs_nffree = cpu_to_fs32(sb, uspi->cs_total.cs_nffree);
634 ufs_print_super_stuff(sb, usb1, usb2, usb3);
640 * @sb: pointer to super_block structure
644 static void ufs_put_super_internal(struct super_block *sb)
646 struct ufs_sb_info *sbi = UFS_SB(sb);
655 ufs_put_cstotal(sb);
664 ubh = ubh_bread(sb, uspi->s_csaddr + i, size);
673 ufs_put_cylinder (sb, i);
686 static int ufs_sync_fs(struct super_block *sb, int wait)
693 mutex_lock(&UFS_SB(sb)->s_lock);
697 flags = UFS_SB(sb)->s_flags;
698 uspi = UFS_SB(sb)->s_uspi;
702 usb1->fs_time = ufs_get_seconds(sb);
706 ufs_set_fs_state(sb, usb1, usb3,
707 UFS_FSOK - fs32_to_cpu(sb, usb1->fs_time));
708 ufs_put_cstotal(sb);
711 mutex_unlock(&UFS_SB(sb)->s_lock);
726 ufs_sync_fs(sbi->sb, 1);
729 void ufs_mark_sb_dirty(struct super_block *sb)
731 struct ufs_sb_info *sbi = UFS_SB(sb);
743 static void ufs_put_super(struct super_block *sb)
745 struct ufs_sb_info * sbi = UFS_SB(sb);
749 if (!sb_rdonly(sb))
750 ufs_put_super_internal(sb);
756 sb->s_fs_info = NULL;
761 static u64 ufs_max_bytes(struct super_block *sb)
763 struct ufs_sb_private_info *uspi = UFS_SB(sb)->s_uspi;
778 static int ufs_fill_super(struct super_block *sb, void *data, int silent)
800 if (!sb_rdonly(sb)) {
809 sb->s_fs_info = sbi;
810 sbi->sb = sb;
812 UFSD("flag %u\n", (int)(sb_rdonly(sb)));
844 sb->s_maxbytes = MAX_LFS_FILESIZE;
846 sb->s_time_gran = NSEC_PER_SEC;
847 sb->s_time_min = S32_MIN;
848 sb->s_time_max = S32_MAX;
868 sb->s_time_gran = 1;
869 sb->s_time_min = S64_MIN;
870 sb->s_time_max = S64_MAX;
916 if (!sb_rdonly(sb)) {
919 sb->s_flags |= SB_RDONLY;
932 if (!sb_rdonly(sb)) {
935 sb->s_flags |= SB_RDONLY;
948 if (!sb_rdonly(sb)) {
951 sb->s_flags |= SB_RDONLY;
964 if (!sb_rdonly(sb)) {
967 sb->s_flags |= SB_RDONLY;
979 if (!sb_rdonly(sb)) {
982 sb->s_flags |= SB_RDONLY;
992 if (!sb_set_blocksize(sb, block_size)) {
1001 ubh = ubh_bread_uspi(uspi, sb, uspi->s_sbbase + super_block_offset/block_size, super_block_size);
1011 uspi->s_postblformat = fs32_to_cpu(sb, usb3->fs_postblformat);
1029 switch ((uspi->fs_magic = fs32_to_cpu(sb, usb3->fs_magic))) {
1039 switch ((uspi->fs_magic = fs32_to_cpu(sb, usb3->fs_magic))) {
1066 uspi->s_bsize = fs32_to_cpu(sb, usb1->fs_bsize);
1067 uspi->s_fsize = fs32_to_cpu(sb, usb1->fs_fsize);
1068 uspi->s_sbsize = fs32_to_cpu(sb, usb1->fs_sbsize);
1069 uspi->s_fmask = fs32_to_cpu(sb, usb1->fs_fmask);
1070 uspi->s_fshift = fs32_to_cpu(sb, usb1->fs_fshift);
1112 ufs_print_super_stuff(sb, usb1, usb2, usb3);
1123 (ufs_get_fs_state(sb, usb1, usb3) == (UFS_FSOK - fs32_to_cpu(sb, usb1->fs_time))))) {
1139 sb->s_flags |= SB_RDONLY;
1143 sb->s_flags |= SB_RDONLY;
1148 sb->s_flags |= SB_RDONLY;
1153 sb->s_flags |= SB_RDONLY;
1159 sb->s_op = &ufs_super_ops;
1160 sb->s_export_op = &ufs_export_ops;
1162 sb->s_magic = fs32_to_cpu(sb, usb3->fs_magic);
1164 uspi->s_sblkno = fs32_to_cpu(sb, usb1->fs_sblkno);
1165 uspi->s_cblkno = fs32_to_cpu(sb, usb1->fs_cblkno);
1166 uspi->s_iblkno = fs32_to_cpu(sb, usb1->fs_iblkno);
1167 uspi->s_dblkno = fs32_to_cpu(sb, usb1->fs_dblkno);
1168 uspi->s_cgoffset = fs32_to_cpu(sb, usb1->fs_cgoffset);
1169 uspi->s_cgmask = fs32_to_cpu(sb, usb1->fs_cgmask);
1172 uspi->s_size = fs64_to_cpu(sb, usb3->fs_un1.fs_u2.fs_size);
1173 uspi->s_dsize = fs64_to_cpu(sb, usb3->fs_un1.fs_u2.fs_dsize);
1175 uspi->s_size = fs32_to_cpu(sb, usb1->fs_size);
1176 uspi->s_dsize = fs32_to_cpu(sb, usb1->fs_dsize);
1179 uspi->s_ncg = fs32_to_cpu(sb, usb1->fs_ncg);
1182 uspi->s_fpb = fs32_to_cpu(sb, usb1->fs_frag);
1183 uspi->s_minfree = fs32_to_cpu(sb, usb1->fs_minfree);
1184 uspi->s_bmask = fs32_to_cpu(sb, usb1->fs_bmask);
1185 uspi->s_fmask = fs32_to_cpu(sb, usb1->fs_fmask);
1186 uspi->s_bshift = fs32_to_cpu(sb, usb1->fs_bshift);
1187 uspi->s_fshift = fs32_to_cpu(sb, usb1->fs_fshift);
1190 uspi->s_fpbshift = fs32_to_cpu(sb, usb1->fs_fragshift);
1191 uspi->s_fsbtodb = fs32_to_cpu(sb, usb1->fs_fsbtodb);
1193 uspi->s_csmask = fs32_to_cpu(sb, usb1->fs_csmask);
1194 uspi->s_csshift = fs32_to_cpu(sb, usb1->fs_csshift);
1195 uspi->s_nindir = fs32_to_cpu(sb, usb1->fs_nindir);
1196 uspi->s_inopb = fs32_to_cpu(sb, usb1->fs_inopb);
1197 uspi->s_nspf = fs32_to_cpu(sb, usb1->fs_nspf);
1198 uspi->s_npsect = ufs_get_fs_npsect(sb, usb1, usb3);
1199 uspi->s_interleave = fs32_to_cpu(sb, usb1->fs_interleave);
1200 uspi->s_trackskew = fs32_to_cpu(sb, usb1->fs_trackskew);
1203 uspi->s_csaddr = fs64_to_cpu(sb, usb3->fs_un1.fs_u2.fs_csaddr);
1205 uspi->s_csaddr = fs32_to_cpu(sb, usb1->fs_csaddr);
1207 uspi->s_cssize = fs32_to_cpu(sb, usb1->fs_cssize);
1208 uspi->s_cgsize = fs32_to_cpu(sb, usb1->fs_cgsize);
1209 uspi->s_ntrak = fs32_to_cpu(sb, usb1->fs_ntrak);
1210 uspi->s_nsect = fs32_to_cpu(sb, usb1->fs_nsect);
1211 uspi->s_spc = fs32_to_cpu(sb, usb1->fs_spc);
1212 uspi->s_ipg = fs32_to_cpu(sb, usb1->fs_ipg);
1213 uspi->s_fpg = fs32_to_cpu(sb, usb1->fs_fpg);
1214 uspi->s_cpc = fs32_to_cpu(sb, usb2->fs_un.fs_u1.fs_cpc);
1215 uspi->s_contigsumsize = fs32_to_cpu(sb, usb3->fs_un2.fs_44.fs_contigsumsize);
1216 uspi->s_qbmask = ufs_get_fs_qbmask(sb, usb3);
1217 uspi->s_qfmask = ufs_get_fs_qfmask(sb, usb3);
1218 uspi->s_nrpos = fs32_to_cpu(sb, usb3->fs_nrpos);
1219 uspi->s_postbloff = fs32_to_cpu(sb, usb3->fs_postbloff);
1220 uspi->s_rotbloff = fs32_to_cpu(sb, usb3->fs_rotbloff);
1227 usb1->fs_optim = cpu_to_fs32(sb, UFS_OPTSPACE);
1258 fs32_to_cpu(sb, usb3->fs_un2.fs_44.fs_maxsymlinklen);
1265 ufs_warning(sb, __func__, "ufs_read_super: excessive maximum "
1269 sb->s_maxbytes = ufs_max_bytes(sb);
1270 sb->s_max_links = UFS_LINK_MAX;
1272 inode = ufs_iget(sb, UFS_ROOTINO);
1277 sb->s_root = d_make_root(inode);
1278 if (!sb->s_root) {
1283 ufs_setup_cstotal(sb);
1287 if (!sb_rdonly(sb))
1288 if (!ufs_read_cylinder_structures(sb))
1299 sb->s_fs_info = NULL;
1308 static int ufs_remount (struct super_block *sb, int *mount_flags, char *data)
1316 sync_filesystem(sb);
1317 mutex_lock(&UFS_SB(sb)->s_lock);
1318 uspi = UFS_SB(sb)->s_uspi;
1319 flags = UFS_SB(sb)->s_flags;
1327 ufstype = UFS_SB(sb)->s_mount_opt & UFS_MOUNT_UFSTYPE;
1331 mutex_unlock(&UFS_SB(sb)->s_lock);
1338 mutex_unlock(&UFS_SB(sb)->s_lock);
1342 if ((bool)(*mount_flags & SB_RDONLY) == sb_rdonly(sb)) {
1343 UFS_SB(sb)->s_mount_opt = new_mount_opt;
1344 mutex_unlock(&UFS_SB(sb)->s_lock);
1352 ufs_put_super_internal(sb);
1353 usb1->fs_time = ufs_get_seconds(sb);
1357 ufs_set_fs_state(sb, usb1, usb3,
1358 UFS_FSOK - fs32_to_cpu(sb, usb1->fs_time));
1360 sb->s_flags |= SB_RDONLY;
1367 mutex_unlock(&UFS_SB(sb)->s_lock);
1376 mutex_unlock(&UFS_SB(sb)->s_lock);
1379 if (!ufs_read_cylinder_structures(sb)) {
1381 mutex_unlock(&UFS_SB(sb)->s_lock);
1384 sb->s_flags &= ~SB_RDONLY;
1387 UFS_SB(sb)->s_mount_opt = new_mount_opt;
1388 mutex_unlock(&UFS_SB(sb)->s_lock);
1414 struct super_block *sb = dentry->d_sb;
1415 struct ufs_sb_private_info *uspi= UFS_SB(sb)->s_uspi;
1416 unsigned flags = UFS_SB(sb)->s_flags;
1417 u64 id = huge_encode_dev(sb->s_bdev->bd_dev);
1419 mutex_lock(&UFS_SB(sb)->s_lock);
1429 buf->f_bsize = sb->s_blocksize;
1436 mutex_unlock(&UFS_SB(sb)->s_lock);
1443 static struct inode *ufs_alloc_inode(struct super_block *sb)