Lines Matching refs:ump

92 static void	ffs_ifree(struct ufsmount *ump, struct inode *ip);
242 struct ufsmount *ump;
248 ump = VFSTOUFS(mp);
249 fs = ump->um_fs;
269 if ((havemtx = mtx_owned(UFS_MTX(ump))) == 0)
270 UFS_LOCK(ump);
271 if (ppsratecheck(&ump->um_last_integritymsg,
272 &ump->um_secs_integritymsg, 1)) {
273 UFS_UNLOCK(ump);
277 UFS_LOCK(ump);
279 UFS_UNLOCK(ump);
310 ffs_fsfail_cleanup(struct ufsmount *ump, int error)
314 UFS_LOCK(ump);
315 retval = ffs_fsfail_cleanup_locked(ump, error);
316 UFS_UNLOCK(ump);
321 ffs_fsfail_cleanup_locked(struct ufsmount *ump, int error)
326 mtx_assert(UFS_MTX(ump), MA_OWNED);
327 if (error == ENXIO && (ump->um_flags & UM_FSFAIL_CLEANUP) == 0) {
328 ump->um_flags |= UM_FSFAIL_CLEANUP;
332 etp = ump->um_fsfail_task;
333 ump->um_fsfail_task = NULL;
339 ump->um_mountp->mnt_stat.f_mntfromname,
340 ump->um_mountp->mnt_stat.f_mntonname);
343 return ((ump->um_flags & UM_FSFAIL_CLEANUP) != 0);
352 ffs_breadz(struct ufsmount *ump, struct vnode *vp, daddr_t lblkno,
362 if (error != 0 && ffs_fsfail_cleanup(ump, error)) {
375 struct ufsmount *ump = NULL;
468 ump = VFSTOUFS(mp);
469 fs = ump->um_fs;
470 odevvp = ump->um_odevvp;
471 devvp = ump->um_devvp;
472 if (fsckpid == -1 && ump->um_fsckpid > 0) {
474 (error = ffs_sbupdate(ump, MNT_WAIT, 0)) != 0)
480 error = g_access(ump->um_cp, 0, -1, 0);
482 ump->um_fsckpid = 0;
521 if ((error = ffs_sbupdate(ump, MNT_WAIT, 0)) != 0) {
533 g_access(ump->um_cp, 0, -1, -1);
553 if (ump->um_fsckpid > 0) {
595 error = g_access(ump->um_cp, 0, 1, 1);
624 if ((error = ffs_sbupdate(ump, MNT_WAIT, 0)) != 0) {
670 if (ump->um_fsckpid != 0) {
682 error = g_access(ump->um_cp, 0, 1, 0);
690 ump->um_fsckpid = fsckpid;
696 (void) ffs_sbupdate(ump, MNT_WAIT, 0);
759 if (devvp->v_rdev != ump->um_devvp->v_rdev)
780 ump = VFSTOUFS(mp);
781 fs = ump->um_fs;
786 error = g_access(ump->um_cp, 0, 1, 0);
792 ump->um_fsckpid = fsckpid;
797 (void) ffs_sbupdate(ump, MNT_WAIT, 0);
862 struct ufsmount *ump;
868 ump = VFSTOUFS(mp);
911 ump->um_maxsymlinklen = fs->fs_maxsymlinklen;
913 UFS_LOCK(ump);
921 UFS_UNLOCK(ump);
1017 struct ufsmount *ump;
1030 ump = NULL;
1134 ump = malloc(sizeof *ump, M_UFSMNT, M_WAITOK | M_ZERO);
1135 ump->um_cp = cp;
1136 ump->um_bo = &devvp->v_bufobj;
1137 ump->um_fs = fs;
1139 ump->um_fstype = UFS1;
1140 ump->um_balloc = ffs_balloc_ufs1;
1142 ump->um_fstype = UFS2;
1143 ump->um_balloc = ffs_balloc_ufs2;
1145 ump->um_blkatoff = ffs_blkatoff;
1146 ump->um_truncate = ffs_truncate;
1147 ump->um_update = ffs_update;
1148 ump->um_valloc = ffs_valloc;
1149 ump->um_vfree = ffs_vfree;
1150 ump->um_ifree = ffs_ifree;
1151 ump->um_rdonly = ffs_rdonly;
1152 ump->um_snapgone = ffs_snapgone;
1154 ump->um_check_blkno = ffs_check_blkno;
1156 ump->um_check_blkno = NULL;
1157 mtx_init(UFS_MTX(ump), "FFS", "FFS Lock", MTX_DEF);
1158 ffs_oldfscompat_read(fs, ump, fs->fs_sblockloc);
1161 mp->mnt_data = ump;
1171 ump->um_maxsymlinklen = fs->fs_maxsymlinklen;
1224 ump->um_flags |= UM_CANDELETE;
1234 if (((ump->um_flags) & UM_CANDELETE) != 0) {
1235 ump->um_trim_tq = taskqueue_create("trim", M_WAITOK,
1236 taskqueue_thread_enqueue, &ump->um_trim_tq);
1237 taskqueue_start_threads(&ump->um_trim_tq, 1, PVFS,
1239 ump->um_trimhash = hashinit(MAXTRIMIO, M_TRIM,
1240 &ump->um_trimlisthashsize);
1247 ump->um_flags |= UM_CANSPEEDUP;
1250 ump->um_mountp = mp;
1251 ump->um_dev = dev;
1252 ump->um_devvp = devvp;
1253 ump->um_odevvp = odevvp;
1254 ump->um_nindir = fs->fs_nindir;
1255 ump->um_bptrtodb = fs->fs_fsbtodb;
1256 ump->um_seqinc = fs->fs_frag;
1258 ump->um_quotas[i] = NULLVP;
1260 ufs_extattr_uepm_init(&ump->um_extattr);
1289 (void) ffs_sbupdate(ump, MNT_WAIT, 0);
1313 etp = malloc(sizeof *ump->um_fsfail_task, M_UFSMNT, M_WAITOK | M_ZERO);
1315 ump->um_fsfail_task = etp;
1328 if (ump) {
1329 mtx_destroy(UFS_MTX(ump));
1334 free(ump, M_UFSMNT);
1377 ffs_oldfscompat_read(fs, ump, sblockloc)
1379 struct ufsmount *ump;
1413 ump->um_savedmaxfilesize = fs->fs_maxfilesize;
1437 ffs_oldfscompat_write(fs, ump)
1439 struct ufsmount *ump;
1451 fs->fs_maxfilesize = ump->um_savedmaxfilesize;
1468 struct ufsmount *ump = VFSTOUFS(mp);
1477 fs = ump->um_fs;
1489 ufs_extattr_uepm_destroy(&ump->um_extattr);
1502 if (error != 0 && !ffs_fsfail_cleanup(ump, error))
1505 UFS_LOCK(ump);
1513 UFS_UNLOCK(ump);
1516 if (fs->fs_ronly == 0 || ump->um_fsckpid > 0) {
1518 error = ffs_sbupdate(ump, MNT_WAIT, 0);
1519 if (ffs_fsfail_cleanup(ump, error))
1521 if (error != 0 && !ffs_fsfail_cleanup(ump, error)) {
1528 if (ump->um_trim_tq != NULL) {
1529 while (ump->um_trim_inflight != 0)
1531 taskqueue_drain_all(ump->um_trim_tq);
1532 taskqueue_free(ump->um_trim_tq);
1533 free (ump->um_trimhash, M_TRIM);
1536 if (ump->um_fsckpid > 0) {
1540 error = g_access(ump->um_cp, 0, -1, 0);
1541 ump->um_fsckpid = 0;
1543 g_vfs_close(ump->um_cp);
1545 BO_LOCK(&ump->um_odevvp->v_bufobj);
1546 ump->um_odevvp->v_bufobj.bo_flag &= ~BO_NOBUFS;
1547 BO_UNLOCK(&ump->um_odevvp->v_bufobj);
1548 atomic_store_rel_ptr((uintptr_t *)&ump->um_dev->si_mountpt, 0);
1549 mntfs_freevp(ump->um_devvp);
1550 vrele(ump->um_odevvp);
1551 dev_rel(ump->um_dev);
1552 mtx_destroy(UFS_MTX(ump));
1560 if (ump->um_fsfail_task != NULL)
1561 free(ump->um_fsfail_task, M_UFSMNT);
1562 free(ump, M_UFSMNT);
1579 ufs_extattr_uepm_init(&ump->um_extattr);
1598 struct ufsmount *ump;
1601 ump = VFSTOUFS(mp);
1626 ASSERT_VOP_LOCKED(ump->um_devvp, "ffs_flushfiles");
1627 if (ump->um_devvp->v_vflag & VV_COPYONWRITE) {
1655 vn_lock(ump->um_devvp, LK_EXCLUSIVE | LK_RETRY);
1656 error = VOP_FSYNC(ump->um_devvp, MNT_WAIT, td);
1657 VOP_UNLOCK(ump->um_devvp);
1669 struct ufsmount *ump;
1672 ump = VFSTOUFS(mp);
1673 fs = ump->um_fs;
1680 UFS_LOCK(ump);
1687 UFS_UNLOCK(ump);
1792 struct ufsmount *ump = VFSTOUFS(mp);
1806 fs = ump->um_fs;
1807 if (fs->fs_fmod != 0 && fs->fs_ronly != 0 && ump->um_fsckpid == 0)
1879 if ((error = softdep_flushworklist(ump->um_mountp, &count, td)))
1881 if (ffs_fsfail_cleanup(ump, allerror))
1888 devvp = ump->um_devvp;
1897 error = ffs_sbupdate(ump, waitfor, 0);
1900 if (ffs_fsfail_cleanup(ump, allerror))
1924 (error = ffs_sbupdate(ump, waitfor, suspended)) != 0)
1926 if (ffs_fsfail_cleanup(ump, allerror))
1951 struct ufsmount *ump;
1988 ump = VFSTOUFS(mp);
1989 fs = ump->um_fs;
2008 ip->i_ump = ump;
2051 error = ffs_breadz(ump, ump->um_devvp, dbn, dbn, (int)fs->fs_bsize,
2171 struct ufsmount *ump;
2180 ump = VFSTOUFS(mp);
2181 fs = ump->um_fs;
2193 error = ffs_getcg(fs, ump->um_devvp, cg, 0, &bp, &cgp);
2254 struct ufsmount *ump;
2265 ffs_sbupdate(ump, waitfor, suspended)
2266 struct ufsmount *ump;
2274 fs = ump->um_fs;
2276 (ump->um_mountp->mnt_flag & (MNT_RDONLY | MNT_UPDATE)) !=
2277 (MNT_RDONLY | MNT_UPDATE) && ump->um_fsckpid == 0)
2282 sbbp = getblk(ump->um_devvp, btodb(fs->fs_sblockloc),
2287 devfd.ump = ump;
2302 struct ufsmount *ump;
2308 ump = devfdp->ump;
2309 fs = ump->um_fs;
2314 bp = getblk(ump->um_devvp, btodb(loc), size, 0, 0, 0);
2328 if (ffs_fsfail_cleanup(ump, devfdp->error))
2346 if (MOUNTEDSOFTDEP(ump->um_mountp))
2347 softdep_setup_sbupdate(ump, (struct fs *)bp->b_data, bp);
2350 ffs_oldfscompat_write(fs, ump);
2378 ffs_ifree(struct ufsmount *ump, struct inode *ip)
2381 if (ump->um_fstype == UFS1 && ip->i_din1 != NULL)
2704 extern void db_print_ffs(struct ufsmount *ump);
2709 struct ufsmount *ump;
2712 ump = VFSTOUFS((struct mount *)addr);
2713 db_print_ffs(ump);