version 1.339, 2016/06/19 22:41:31 |
version 1.339.2.5, 2017/01/07 08:56:53 |
Line 409 ffs_mount(struct mount *mp, const char * |
|
Line 409 ffs_mount(struct mount *mp, const char * |
|
struct fs *fs; |
struct fs *fs; |
int error = 0, flags, update; |
int error = 0, flags, update; |
mode_t accessmode; |
mode_t accessmode; |
|
const struct bdevsw *bdev = NULL; |
|
|
if (args == NULL) { |
if (args == NULL) { |
DPRINTF("NULL args"); |
DPRINTF("NULL args"); |
Line 451 ffs_mount(struct mount *mp, const char * |
|
Line 452 ffs_mount(struct mount *mp, const char * |
|
if (devvp->v_type != VBLK) { |
if (devvp->v_type != VBLK) { |
DPRINTF("non block device %d", devvp->v_type); |
DPRINTF("non block device %d", devvp->v_type); |
error = ENOTBLK; |
error = ENOTBLK; |
} else if (bdevsw_lookup(devvp->v_rdev) == NULL) { |
} else { |
DPRINTF("can't find block device 0x%jx", |
bdev = bdevsw_lookup_acquire(devvp->v_rdev); |
devvp->v_rdev); |
if (bdev == NULL) { |
error = ENXIO; |
DPRINTF("can't find block device 0x%jx", |
|
devvp->v_rdev); |
|
error = ENXIO; |
|
} |
} |
} |
} else { |
} else { |
/* |
/* |
Line 512 ffs_mount(struct mount *mp, const char * |
|
Line 516 ffs_mount(struct mount *mp, const char * |
|
VOP_UNLOCK(devvp); |
VOP_UNLOCK(devvp); |
} |
} |
|
|
if (error) { |
if (error) |
vrele(devvp); |
goto fail; |
return (error); |
|
} |
|
|
|
#ifdef WAPBL |
#ifdef WAPBL |
/* WAPBL can only be enabled on a r/w mount. */ |
/* WAPBL can only be enabled on a r/w mount. */ |
Line 718 ffs_mount(struct mount *mp, const char * |
|
Line 720 ffs_mount(struct mount *mp, const char * |
|
mp->mnt_flag &= ~MNT_SOFTDEP; |
mp->mnt_flag &= ~MNT_SOFTDEP; |
} |
} |
|
|
|
if (bdev != NULL) |
|
bdevsw_release(bdev); |
return (error); |
return (error); |
|
|
fail: |
fail: |
|
if (bdev != NULL) |
|
bdevsw_release(bdev); |
vrele(devvp); |
vrele(devvp); |
return (error); |
return (error); |
} |
} |
Line 1605 ffs_oldfscompat_read(struct fs *fs, stru |
|
Line 1611 ffs_oldfscompat_read(struct fs *fs, stru |
|
fs->fs_old_trackskew = 0; |
fs->fs_old_trackskew = 0; |
} |
} |
|
|
if (fs->fs_old_inodefmt < FS_44INODEFMT) { |
if (fs->fs_magic == FS_UFS1_MAGIC && |
|
fs->fs_old_inodefmt < FS_44INODEFMT) { |
fs->fs_maxfilesize = (u_quad_t) 1LL << 39; |
fs->fs_maxfilesize = (u_quad_t) 1LL << 39; |
fs->fs_qbmask = ~fs->fs_bmask; |
fs->fs_qbmask = ~fs->fs_bmask; |
fs->fs_qfmask = ~fs->fs_fmask; |
fs->fs_qfmask = ~fs->fs_fmask; |
Line 1916 ffs_sync(struct mount *mp, int waitfor, |
|
Line 1923 ffs_sync(struct mount *mp, int waitfor, |
|
ctx.is_suspending = is_suspending; |
ctx.is_suspending = is_suspending; |
while ((vp = vfs_vnode_iterator_next(marker, ffs_sync_selector, &ctx))) |
while ((vp = vfs_vnode_iterator_next(marker, ffs_sync_selector, &ctx))) |
{ |
{ |
error = vn_lock(vp, LK_EXCLUSIVE); |
error = vn_lock(vp, |
|
LK_EXCLUSIVE | (waitfor == MNT_LAZY ? LK_NOWAIT : 0)); |
if (error) { |
if (error) { |
vrele(vp); |
vrele(vp); |
continue; |
continue; |
Line 2092 ffs_loadvnode(struct mount *mp, struct v |
|
Line 2100 ffs_loadvnode(struct mount *mp, struct v |
|
* fix until fsck has been changed to do the update. |
* fix until fsck has been changed to do the update. |
*/ |
*/ |
|
|
if (fs->fs_old_inodefmt < FS_44INODEFMT) { /* XXX */ |
if (fs->fs_magic == FS_UFS1_MAGIC && /* XXX */ |
|
fs->fs_old_inodefmt < FS_44INODEFMT) { /* XXX */ |
ip->i_uid = ip->i_ffs1_ouid; /* XXX */ |
ip->i_uid = ip->i_ffs1_ouid; /* XXX */ |
ip->i_gid = ip->i_ffs1_ogid; /* XXX */ |
ip->i_gid = ip->i_ffs1_ogid; /* XXX */ |
} /* XXX */ |
} /* XXX */ |
Line 2349 ffs_cgupdate(struct ufsmount *mp, int wa |
|
Line 2358 ffs_cgupdate(struct ufsmount *mp, int wa |
|
void *space; |
void *space; |
int i, size, error = 0, allerror = 0; |
int i, size, error = 0, allerror = 0; |
|
|
|
UFS_WAPBL_JLOCK_ASSERT(mp); |
|
|
allerror = ffs_sbupdate(mp, waitfor); |
allerror = ffs_sbupdate(mp, waitfor); |
blks = howmany(fs->fs_cssize, fs->fs_fsize); |
blks = howmany(fs->fs_cssize, fs->fs_fsize); |
space = fs->fs_csp; |
space = fs->fs_csp; |