Add in my fix for 2.4.x kernels so /proc/mounts will not have useless
deg entries which break mount, df, and friends. Renamed WillThisGoIntoTheKernel to avoid any confision. -Erik
This commit is contained in:
parent
e6b9dfa967
commit
acecc47261
66
examples/kernel-patches/2.4.x_mount_patch
Normal file
66
examples/kernel-patches/2.4.x_mount_patch
Normal file
@ -0,0 +1,66 @@
|
||||
On Sat Jul 01, 2000 at 12:04:36PM -0400, Alexander Viro wrote:
|
||||
>
|
||||
> Try to trace the path from their roots to absolute root(s)... They simply
|
||||
> should not be in the output - that's a debugging stuff and I have no
|
||||
> problems with removing it from /proc/mounts. No heuristics needed - we
|
||||
> can pass NULL as dev_name in kern_mount() and check for NULL ->mnt_devname
|
||||
> in get_filesystem_info(). I'll do that as soon as threading patches will
|
||||
> be over (hopefully RSN - they went to Linus).
|
||||
>
|
||||
|
||||
Ok, cool. So something like then? I kept in the filter for FS_NOMOUNT
|
||||
filesystems, as I assume those should never show up in /proc/mounts, and added
|
||||
that filter to the /proc/filesystems listing as well.
|
||||
|
||||
-Erik
|
||||
|
||||
--
|
||||
Erik B. Andersen Web: http://www.xmission.com/~andersen/
|
||||
email: andersee@debian.org
|
||||
--This message was written using 73% post-consumer electrons--
|
||||
|
||||
|
||||
--- fs/super.c.virgin Wed Jun 28 22:42:35 2000
|
||||
+++ fs/super.c Mon Jul 3 12:07:07 2000
|
||||
@@ -251,6 +251,10 @@ int get_filesystem_list(char * buf)
|
||||
read_lock(&file_systems_lock);
|
||||
tmp = file_systems;
|
||||
while (tmp && len < PAGE_SIZE - 80) {
|
||||
+ /* Filter out any filesystems that are marked as FS_NOMOUNT.
|
||||
+ * User space doesn't need to know or care about them */
|
||||
+ if (tmp->fs_flags & FS_NOMOUNT)
|
||||
+ continue;
|
||||
len += sprintf(buf+len, "%s\t%s\n",
|
||||
(tmp->fs_flags & FS_REQUIRES_DEV) ? "" : "nodev",
|
||||
tmp->name);
|
||||
@@ -443,6 +447,16 @@ int get_filesystem_info( char *buf )
|
||||
path = d_path(tmp->mnt_root, tmp, buffer, PAGE_SIZE);
|
||||
if (!path)
|
||||
continue;
|
||||
+ /* Filter out any filesystems that are marked as FS_NOMOUNT.
|
||||
+ * User space doesn't need to know or care about them */
|
||||
+ if (tmp->mnt_sb->s_type->fs_flags & FS_NOMOUNT)
|
||||
+ continue;
|
||||
+ /* kern_mount() allows the kernel to mount internal-use-only
|
||||
+ * filesystems, and marks then with ->mnt_devname==NULL, so
|
||||
+ * filter out those here */
|
||||
+ if (tmp->mnt_devname == NULL)
|
||||
+ continue;
|
||||
+
|
||||
len += sprintf( buf + len, "%s %s %s %s",
|
||||
tmp->mnt_devname, path,
|
||||
tmp->mnt_sb->s_type->name,
|
||||
@@ -895,7 +909,7 @@ struct vfsmount *kern_mount(struct file_
|
||||
put_unnamed_dev(dev);
|
||||
return ERR_PTR(-EINVAL);
|
||||
}
|
||||
- mnt = add_vfsmnt(sb, sb->s_root, sb->s_root, NULL, "none", type->name);
|
||||
+ mnt = add_vfsmnt(sb, sb->s_root, sb->s_root, NULL, NULL, type->name);
|
||||
if (!mnt) {
|
||||
kill_super(sb, 0);
|
||||
return ERR_PTR(-ENOMEM);
|
||||
|
||||
-
|
||||
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
|
||||
the body of a message to majordomo@vger.rutgers.edu
|
||||
Please read the FAQ at http://www.tux.org/lkml/
|
Loading…
Reference in New Issue
Block a user