return (0);
}
- /*
- * Check for mandatory locks
- */
- if (mandatory_lock(ip) &&
- !lock_may_read(ip, uio->uio_loffset, uio->uio_resid)) {
- ZFS_EXIT(zsb);
- return (SET_ERROR(EAGAIN));
- }
-
/*
* If we're in FRSYNC mode, sync out this znode before reading it.
*/
return (SET_ERROR(EINVAL));
}
- /*
- * Check for mandatory locks before calling zfs_range_lock()
- * in order to prevent a deadlock with locks set via fcntl().
- */
- if (mandatory_lock(ip) && !lock_may_write(ip, woff, n)) {
- ZFS_EXIT(zsb);
- return (SET_ERROR(EAGAIN));
- }
-
/*
* Pre-fault the pages to ensure slow (eg NFS) pages
* don't hold up txg.
int
zfs_freesp(znode_t *zp, uint64_t off, uint64_t len, int flag, boolean_t log)
{
- struct inode *ip = ZTOI(zp);
dmu_tx_t *tx;
zfs_sb_t *zsb = ZTOZSB(zp);
zilog_t *zilog = zsb->z_log;
goto out;
}
- /*
- * Check for any locks in the region to be freed.
- */
- if (ip->i_flock && mandatory_lock(ip)) {
- uint64_t length = (len ? len : zp->z_size - off);
- if (!lock_may_write(ip, off, length))
- return (SET_ERROR(EAGAIN));
- }
-
if (len == 0) {
error = zfs_trunc(zp, off);
} else {