mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-26 02:39:48 +00:00
![Arnd Bergmann](/assets/img/avatar_default.png)
This introduces a new per-superblock mutex in UFS to replace the big kernel lock. I have been careful to avoid nested calls to lock_ufs and to get the lock order right with respect to other mutexes, in particular lock_super. I did not make any attempt to prove that the big kernel lock is not needed in a particular place in the code, which is very possible. The mutex has a significant performance impact, so it is only used on SMP or PREEMPT configurations. As Nick Piggin noticed, any allocation inside of the lock may end up deadlocking when we get to ufs_getfrag_block in the reclaim task, so we now use GFP_NOFS. Signed-off-by: Arnd Bergmann <arnd@arndb.de> Tested-by: Nick Bowler <nbowler@elliptictech.com> Cc: Evgeniy Dushistov <dushistov@mail.ru> Cc: Nick Piggin <npiggin@gmail.com>
43 lines
1.7 KiB
Text
43 lines
1.7 KiB
Text
config UFS_FS
|
|
tristate "UFS file system support (read only)"
|
|
depends on BLOCK
|
|
help
|
|
BSD and derivate versions of Unix (such as SunOS, FreeBSD, NetBSD,
|
|
OpenBSD and NeXTstep) use a file system called UFS. Some System V
|
|
Unixes can create and mount hard disk partitions and diskettes using
|
|
this file system as well. Saying Y here will allow you to read from
|
|
these partitions; if you also want to write to them, say Y to the
|
|
experimental "UFS file system write support", below. Please read the
|
|
file <file:Documentation/filesystems/ufs.txt> for more information.
|
|
|
|
The recently released UFS2 variant (used in FreeBSD 5.x) is
|
|
READ-ONLY supported.
|
|
|
|
Note that this option is generally not needed for floppies, since a
|
|
good portable way to transport files and directories between unixes
|
|
(and even other operating systems) is given by the tar program ("man
|
|
tar" or preferably "info tar").
|
|
|
|
When accessing NeXTstep files, you may need to convert them from the
|
|
NeXT character set to the Latin1 character set; use the program
|
|
recode ("info recode") for this purpose.
|
|
|
|
To compile the UFS file system support as a module, choose M here: the
|
|
module will be called ufs.
|
|
|
|
If you haven't heard about all of this before, it's safe to say N.
|
|
|
|
config UFS_FS_WRITE
|
|
bool "UFS file system write support (DANGEROUS)"
|
|
depends on UFS_FS && EXPERIMENTAL
|
|
help
|
|
Say Y here if you want to try writing to UFS partitions. This is
|
|
experimental, so you should back up your UFS partitions beforehand.
|
|
|
|
config UFS_DEBUG
|
|
bool "UFS debugging"
|
|
depends on UFS_FS
|
|
help
|
|
If you are experiencing any problems with the UFS filesystem, say
|
|
Y here. This will result in _many_ additional debugging messages to be
|
|
written to the system log.
|