Thanks for your report.

At Mon, 02 Feb 2004 11:50:30 +0100,
josh buhl wrote:
> Now, on my sytem tmpfs is not enabled in the kernel:
> 
> spleen:~# grep -i tmpfs /boot/config-2.4.24
> # CONFIG_TMPFS is not set
> spleen:~#
> 
> however, this availability test is still true:
> 
> spleen:~# grep -i tmpfs /proc/filesystems
> nodev   tmpfs
> spleen:~# grep -ci '[<[:space:]]tmpfs' /proc/filesystems
> 1
> spleen:~#
> 
> And so mounting tmpfs at boot fails with an error message.
> 
> 
> After recompiling the kernel and enabling tmpfs, the check produces the
> same results:
> 
> spleen:~# grep -i tmpfs /boot/config-2.4.24
> CONFIG_TMPFS=y
> spleen:~# grep -i tmpfs /proc/filesystems
> nodev   tmpfs
> spleen:~# grep -ci '[<[:space:]]tmpfs' /proc/filesystems
> 1
> spleen:~#
> 
> 
> I don't know why /proc/filesytems shows tmpfs even if it's not compiled 
> in...

Looking at kernel 2.6.1 Documentation/filesystems/tmpfs.txt:

        tmpfs has the following uses:

        1) There is always a kernel internal mount which you will not see at
           all. This is used for shared anonymous mappings and SYSV shared
           memory. 
        
           This mount does not depend on CONFIG_TMPFS. If CONFIG_TMPFS is not
           set, the user visible part of tmpfs is not build. But the internal
           mechanisms are always present.

Kernel 2.6 has only "tmpfs" entry.

However, OTOH, kernel 2.4 has both "tmpfs" entry and "shmfs" entry.
I find the difference at linux-2.4.23/mm/shmem.c:init_tmpfs() as follows:

        static int __init init_tmpfs(void)
        {
                error = register_filesystem(&tmpfs_fs_type);
        #ifdef CONFIG_TMPFS
                error = register_filesystem(&shmem_fs_type);
        #endif

Kernel 2.4 always mounts tmpfs, but not shmfs (it mounts iff
CONFIG_TMPFS is used).  From checking throught all kernel 2.5 patches,
this modification was done in 2.5.45, worked by akpm:

        http://linux.bkbits.net:8080/linux-2.5/diffs/mm/[EMAIL 
PROTECTED]|src/|src/mm|hist/mm/shmem.c

And summary:

        kernel 2.3.3x - 2.3.??  shmfs is existed
        kernel 2.3.? - 2.5.44:  shmfs and tmpfs are existed
                                if there is no "shmfs", then we should
                                avoid to mount /dev/shm.
        kernel 2.5.45-:         tmpfs is existed

Now I fix:

        kernel - 2.5.44         check shmfs and tmpfs, and mount as "tmpfs"
                                if tmpfs is unavailable, try to use shmfs.
        kernel 2.5.45 -         check only tmpfs, and mount as "tmpfs"

Regards,
-- gotom


-- 
To UNSUBSCRIBE, email to [EMAIL PROTECTED]
with a subject of "unsubscribe". Trouble? Contact [EMAIL PROTECTED]

Reply via email to