mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-08-23 01:10:04 +00:00
![Stuart Swales](/assets/img/avatar_default.png)
ADFS (FileCore) storage complies with the RISC OS filetype specification (12 bits of file type information is stored in the file load address, rather than using a file extension). The existing driver largely ignores this information and does not present it to the end user. It is desirable that stored filetypes be made visible to the end user to facilitate a precise copy of data and metadata from a hard disc (or image thereof) into a RISC OS emulator (such as RPCEmu) or to a network share which can be accessed by real Acorn systems. This patch implements a per-mount filetype suffix option (use -o ftsuffix=1) to present any filetype as a ,xyz hexadecimal suffix on each file. This type suffix is compatible with that used by RISC OS systems that access network servers using NFS client software and by RPCemu's host filing system. Signed-off-by: Stuart Swales <stuart.swales.croftnuisk@gmail.com> Cc: Russell King <rmk@arm.linux.org.uk> Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
75 lines
2.6 KiB
Text
75 lines
2.6 KiB
Text
Mount options for ADFS
|
|
----------------------
|
|
|
|
uid=nnn All files in the partition will be owned by
|
|
user id nnn. Default 0 (root).
|
|
gid=nnn All files in the partition will be in group
|
|
nnn. Default 0 (root).
|
|
ownmask=nnn The permission mask for ADFS 'owner' permissions
|
|
will be nnn. Default 0700.
|
|
othmask=nnn The permission mask for ADFS 'other' permissions
|
|
will be nnn. Default 0077.
|
|
ftsuffix=n When ftsuffix=0, no file type suffix will be applied.
|
|
When ftsuffix=1, a hexadecimal suffix corresponding to
|
|
the RISC OS file type will be added. Default 0.
|
|
|
|
Mapping of ADFS permissions to Linux permissions
|
|
------------------------------------------------
|
|
|
|
ADFS permissions consist of the following:
|
|
|
|
Owner read
|
|
Owner write
|
|
Other read
|
|
Other write
|
|
|
|
(In older versions, an 'execute' permission did exist, but this
|
|
does not hold the same meaning as the Linux 'execute' permission
|
|
and is now obsolete).
|
|
|
|
The mapping is performed as follows:
|
|
|
|
Owner read -> -r--r--r--
|
|
Owner write -> --w--w---w
|
|
Owner read and filetype UnixExec -> ---x--x--x
|
|
These are then masked by ownmask, eg 700 -> -rwx------
|
|
Possible owner mode permissions -> -rwx------
|
|
|
|
Other read -> -r--r--r--
|
|
Other write -> --w--w--w-
|
|
Other read and filetype UnixExec -> ---x--x--x
|
|
These are then masked by othmask, eg 077 -> ----rwxrwx
|
|
Possible other mode permissions -> ----rwxrwx
|
|
|
|
Hence, with the default masks, if a file is owner read/write, and
|
|
not a UnixExec filetype, then the permissions will be:
|
|
|
|
-rw-------
|
|
|
|
However, if the masks were ownmask=0770,othmask=0007, then this would
|
|
be modified to:
|
|
-rw-rw----
|
|
|
|
There is no restriction on what you can do with these masks. You may
|
|
wish that either read bits give read access to the file for all, but
|
|
keep the default write protection (ownmask=0755,othmask=0577):
|
|
|
|
-rw-r--r--
|
|
|
|
You can therefore tailor the permission translation to whatever you
|
|
desire the permissions should be under Linux.
|
|
|
|
RISC OS file type suffix
|
|
------------------------
|
|
|
|
RISC OS file types are stored in bits 19..8 of the file load address.
|
|
|
|
To enable non-RISC OS systems to be used to store files without losing
|
|
file type information, a file naming convention was devised (initially
|
|
for use with NFS) such that a hexadecimal suffix of the form ,xyz
|
|
denoted the file type: e.g. BasicFile,ffb is a BASIC (0xffb) file. This
|
|
naming convention is now also used by RISC OS emulators such as RPCEmu.
|
|
|
|
Mounting an ADFS disc with option ftsuffix=1 will cause appropriate file
|
|
type suffixes to be appended to file names read from a directory. If the
|
|
ftsuffix option is zero or omitted, no file type suffixes will be added.
|