2021-03-23 20:02:10

by André Almeida

[permalink] [raw]
Subject: [RFC PATCH 4/4] docs: tmpfs: Add casefold options

Document mounting options to enable casefold support in tmpfs.

Signed-off-by: André Almeida <[email protected]>
---
Documentation/filesystems/tmpfs.rst | 26 ++++++++++++++++++++++++++
1 file changed, 26 insertions(+)

diff --git a/Documentation/filesystems/tmpfs.rst b/Documentation/filesystems/tmpfs.rst
index 0408c245785e..84c87c309bd7 100644
--- a/Documentation/filesystems/tmpfs.rst
+++ b/Documentation/filesystems/tmpfs.rst
@@ -170,6 +170,32 @@ So 'mount -t tmpfs -o size=10G,nr_inodes=10k,mode=700 tmpfs /mytmpfs'
will give you tmpfs instance on /mytmpfs which can allocate 10GB
RAM/SWAP in 10240 inodes and it is only accessible by root.

+tmpfs has the following mounting options for case-insesitive lookups support:
+
+========= ==============================================================
+casefold Enable casefold support at this mount point using the given
+ argument as enconding. Currently only utf8 encondings are supported.
+cf_strict Enable strict casefolding at this mouting point (disabled by
+ default). This means that invalid strings should be reject by the
+ file system.
+========= ==============================================================
+
+Note that this option doesn't enable casefold by default, one needs to set
+casefold flag per directory, setting the +F attribute in an empty directory. New
+directories within a casefolded one will inherit the flag.
+
+Example::
+
+ $ mount -t tmpfs -o casefold=utf8-12.1.0,cf_strict tmpfs /mytmpfs
+ $ cd /mytmpfs
+ $ touch a; touch A
+ $ ls
+ A a
+ $ mkdir dir
+ $ chattr +F dir
+ $ touch dir/a; touch dir/A
+ $ ls dir
+ a

:Author:
Christoph Rohland <[email protected]>, 1.12.01
--
2.31.0


2021-03-23 22:00:18

by Randy Dunlap

[permalink] [raw]
Subject: Re: [RFC PATCH 4/4] docs: tmpfs: Add casefold options

Hi--

On 3/23/21 12:59 PM, André Almeida wrote:
> Document mounting options to enable casefold support in tmpfs.
>
> Signed-off-by: André Almeida <[email protected]>
> ---
> Documentation/filesystems/tmpfs.rst | 26 ++++++++++++++++++++++++++
> 1 file changed, 26 insertions(+)
>
> diff --git a/Documentation/filesystems/tmpfs.rst b/Documentation/filesystems/tmpfs.rst
> index 0408c245785e..84c87c309bd7 100644
> --- a/Documentation/filesystems/tmpfs.rst
> +++ b/Documentation/filesystems/tmpfs.rst
> @@ -170,6 +170,32 @@ So 'mount -t tmpfs -o size=10G,nr_inodes=10k,mode=700 tmpfs /mytmpfs'
> will give you tmpfs instance on /mytmpfs which can allocate 10GB
> RAM/SWAP in 10240 inodes and it is only accessible by root.
>
> +tmpfs has the following mounting options for case-insesitive lookups support:
> +
> +========= ==============================================================
> +casefold Enable casefold support at this mount point using the given
> + argument as enconding. Currently only utf8 encondings are supported.

encoding. encodings

> +cf_strict Enable strict casefolding at this mouting point (disabled by

mount

> + default). This means that invalid strings should be reject by the

rejected

> + file system.
> +========= ==============================================================
> +
> +Note that this option doesn't enable casefold by default, one needs to set

default; one needs to set the

> +casefold flag per directory, setting the +F attribute in an empty directory. New
> +directories within a casefolded one will inherit the flag.


--
~Randy

2021-03-23 22:24:32

by Gabriel Krisman Bertazi

[permalink] [raw]
Subject: Re: [RFC PATCH 4/4] docs: tmpfs: Add casefold options

André Almeida <[email protected]> writes:

> Document mounting options to enable casefold support in tmpfs.
>
> Signed-off-by: André Almeida <[email protected]>
> ---
> Documentation/filesystems/tmpfs.rst | 26 ++++++++++++++++++++++++++
> 1 file changed, 26 insertions(+)
>
> diff --git a/Documentation/filesystems/tmpfs.rst b/Documentation/filesystems/tmpfs.rst
> index 0408c245785e..84c87c309bd7 100644
> --- a/Documentation/filesystems/tmpfs.rst
> +++ b/Documentation/filesystems/tmpfs.rst
> @@ -170,6 +170,32 @@ So 'mount -t tmpfs -o size=10G,nr_inodes=10k,mode=700 tmpfs /mytmpfs'
> will give you tmpfs instance on /mytmpfs which can allocate 10GB
> RAM/SWAP in 10240 inodes and it is only accessible by root.
>
> +tmpfs has the following mounting options for case-insesitive lookups support:
> +
> +========= ==============================================================
> +casefold Enable casefold support at this mount point using the given
> + argument as enconding. Currently only utf8 encondings are supported.
> +cf_strict Enable strict casefolding at this mouting point (disabled by
> + default). This means that invalid strings should be reject by the
> + file system.

strict mode refers to the encoding, not exactly casefold. Maybe we
could have a parameter encoding_flags that accepts the flag 'strict'.
This would make it closer to the ext4 interface. Alternatively, call
this option strict_encoding.

> +========= ==============================================================
> +
> +Note that this option doesn't enable casefold by default, one needs to set
> +casefold flag per directory, setting the +F attribute in an empty directory. New
> +directories within a casefolded one will inherit the flag.
> +
> +Example::
> +
> + $ mount -t tmpfs -o casefold=utf8-12.1.0,cf_strict tmpfs /mytmpfs
> + $ cd /mytmpfs
> + $ touch a; touch A
> + $ ls
> + A a
> + $ mkdir dir
> + $ chattr +F dir
> + $ touch dir/a; touch dir/A
> + $ ls dir
> + a
>
> :Author:
> Christoph Rohland <[email protected]>, 1.12.01

--
Gabriel Krisman Bertazi

2021-03-24 20:49:59

by André Almeida

[permalink] [raw]
Subject: Re: [RFC PATCH 4/4] docs: tmpfs: Add casefold options

Hi Gabriel,

Às 19:19 de 23/03/21, Gabriel Krisman Bertazi escreveu:
> André Almeida <[email protected]> writes:
>
>> Document mounting options to enable casefold support in tmpfs.
>>
>> Signed-off-by: André Almeida <[email protected]>
>> ---
>> Documentation/filesystems/tmpfs.rst | 26 ++++++++++++++++++++++++++
>> 1 file changed, 26 insertions(+)
>>
>> diff --git a/Documentation/filesystems/tmpfs.rst b/Documentation/filesystems/tmpfs.rst
>> index 0408c245785e..84c87c309bd7 100644
>> --- a/Documentation/filesystems/tmpfs.rst
>> +++ b/Documentation/filesystems/tmpfs.rst
>> @@ -170,6 +170,32 @@ So 'mount -t tmpfs -o size=10G,nr_inodes=10k,mode=700 tmpfs /mytmpfs'
>> will give you tmpfs instance on /mytmpfs which can allocate 10GB
>> RAM/SWAP in 10240 inodes and it is only accessible by root.
>>
>> +tmpfs has the following mounting options for case-insesitive lookups support:
>> +
>> +========= ==============================================================
>> +casefold Enable casefold support at this mount point using the given
>> + argument as enconding. Currently only utf8 encondings are supported.
>> +cf_strict Enable strict casefolding at this mouting point (disabled by
>> + default). This means that invalid strings should be reject by the
>> + file system.
>
> strict mode refers to the encoding, not exactly casefold. Maybe we
> could have a parameter encoding_flags that accepts the flag 'strict'.
> This would make it closer to the ext4 interface.

What are the other enconding flags? Or is this more about having a
properly extensible interface?

> Alternatively, call this option strict_encoding.
>

Thanks,
André

2021-03-25 14:30:06

by André Almeida

[permalink] [raw]
Subject: Re: [RFC PATCH 4/4] docs: tmpfs: Add casefold options

Às 18:58 de 23/03/21, Randy Dunlap escreveu:
> Hi--
>
> On 3/23/21 12:59 PM, André Almeida wrote:
>> Document mounting options to enable casefold support in tmpfs.
>>
>> Signed-off-by: André Almeida <[email protected]>
>> ---
>> Documentation/filesystems/tmpfs.rst | 26 ++++++++++++++++++++++++++
>> 1 file changed, 26 insertions(+)
>>
>> diff --git a/Documentation/filesystems/tmpfs.rst b/Documentation/filesystems/tmpfs.rst
>> index 0408c245785e..84c87c309bd7 100644
>> --- a/Documentation/filesystems/tmpfs.rst
>> +++ b/Documentation/filesystems/tmpfs.rst
>> @@ -170,6 +170,32 @@ So 'mount -t tmpfs -o size=10G,nr_inodes=10k,mode=700 tmpfs /mytmpfs'
>> will give you tmpfs instance on /mytmpfs which can allocate 10GB
>> RAM/SWAP in 10240 inodes and it is only accessible by root.
>>
>> +tmpfs has the following mounting options for case-insesitive lookups support:
>> +
>> +========= ==============================================================
>> +casefold Enable casefold support at this mount point using the given
>> + argument as enconding. Currently only utf8 encondings are supported.
>
> encoding. encodings
>
>> +cf_strict Enable strict casefolding at this mouting point (disabled by
>
> mount
>
>> + default). This means that invalid strings should be reject by the
>
> rejected
>
>> + file system.
>> +========= ==============================================================
>> +
>> +Note that this option doesn't enable casefold by default, one needs to set
>
> default; one needs to set the
>
>> +casefold flag per directory, setting the +F attribute in an empty directory. New
>> +directories within a casefolded one will inherit the flag.
>
>

Thanks for the feedback Randy, all changes applied.