Copyright (c) 2008, Sun Microsystems, Inc. All Rights Reserved
The contents of this file are subject to the terms of the Common Development and Distribution License (the "License"). You may not use this file except in compliance with the License.
You can obtain a copy of the license at usr/src/OPENSOLARIS.LICENSE or http://www.opensolaris.org/os/licensing. See the License for the specific language governing permissions and limitations under the License.
When distributing Covered Code, include this CDDL HEADER in each file and include the License file at usr/src/OPENSOLARIS.LICENSE. If applicable, add the following below this CDDL HEADER, with the fields enclosed by brackets "[]" replaced with your own identifying information: Portions Copyright [yyyy] [name of copyright owner]
/usr/sbin/lockfs [-adefhnuw] [-c string] [file-system]...
lockfs is used to change and report the status of file system locks. lockfs reports the lock status and unlocks the file systems that were improperly left locked.
Using lockfs to lock a file system is discouraged because this requires extensive knowledge of SunOS internals to be used effectively and correctly.
When invoked with no arguments, lockfs lists the UFS file systems that are locked. If file-system is not specified, and -a is specified, lockfs is run on all mounted, UFS type file systems.
The options are mutually exclusive: wndheuf. If you do specify more than one of these options on a lockfs command line, the utility does not protest and invokes only the last option specified. In particular, you cannot specify a flush (-f) and a lock (for example, -w) on the same command line. However, all locking operations implicitly perform a flush, so the -f is superfluous when specifying a lock.
You must be super-user to use any of the following options, with the exception of -a, -f and -v.
The following options are supported. -a
Apply command to all mounted, UFS type file systems. file-system is ignored when -a is specified.
Accept a string that is passed as the comment field. The -c only takes affect when the lock is being set using the -d, -h, -n, -u, or -w options.
Delete-lock (dlock) the specified file-system. dlock suspends access that could remove directory entries.
Error-lock (elock) the specified file-system. elock blocks all local access to the locked file system and returns EWOULDBLOCK on all remote access. File systems are elocked by UFS on detection of internal inconsistency. They may only be unlocked after successful repair by fsck, which is usually done automatically (see mount_ufs(8)). elocked file systems can be unmounted.
Force a synchronous flush of all data that is dirty at the time fsflush is run to its backing store for the named file system (or for all file systems.) It is a more reliable method than using sync(8) because it does not return until all possible data has been pushed. In the case of UFS filesystems with logging enabled, the log is also rolled before returning. Additional data can be modified by the time fsflush exits, so using one of the locking options is more likely to be of general use.
Hard-lock (hlock) the specified file-system. hlock returns an error on every access to the locked file system, and cannot be unlocked. hlocked file systems can be unmounted.
Name-lock (nlock) the specified file-system. nlock suspends accesses that could change or remove existing directories entries.
Unlock (ulock) the specified file-system. ulock awakens suspended accesses.
Enable verbose output.
Write-lock (wlock) the specified file-system. wlock suspends writes that would modify the file system. Access times are not kept while a file system is write-locked.
The following operands are supported. file-system
A list of path names separated by whitespace. Note that file-system can be a directory rather than the specific name of a file system, such as / or /usr. For example, if you specify /export/home as an argument to a lockfs command and /export/home is mounted on the root (/) file system, the lockfs command will take effect on the root file system.
See largefile(7) for the description of the behavior of lockfs when encountering files greater than or equal to 2 Gbyte ( 2^31 bytes).
Example 1 Using lockfs -a
In the following examples, filesystem is the pathname of the mounted-on directory (mount point). Locktype is one of "write," "name," "delete," "hard," or "unlock". When enclosed in parenthesis, the lock is being set. Comment is a string set by the process that last issued a lock command.
The following example shows the lockfs output when only the -a option is specified.
example# /usr/sbin/lockfs -a
Filesystem Locktype Comment |
/ unlock |
/var unlock |
example#
Example 2 Using lockfs -w
The following example shows the lockfs output when the -w option is used to write lock the /var file system and the comment string is set using the -c option. The -a option is then specified on a separate command line.
example# /usr/sbin/lockfs -w -c "lockfs: write lock example" /var example# /usr/sbin/lockfs -a
Filesystem Locktype Comment |
/ unlock |
/var write lockfs: write lock example |
example#
Example 3 Using lockfs -u
The following example shows the lockfs output when the -u option is used to unlock the /var file system and the comment string is set using the -c option.
example# /usr/sbin/lockfs -uc "lockfs: unlock example" /var example# /usr/sbin/lockfs /var
Filesystem Locktype Comment |
/var unlock lockfs: unlock example |
example#
kill(1), mount_ufs(8), sync(8), attributes(7), largefile(7), ufs(4FS),
You must be root to use this command.
A file is enabled for accounting or swapping, on file system.
Another process is setting the lock on file system.