lkml.org 
[lkml]   [2005]   [Feb]   [1]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    Date
    From
    Subject[PATCH] proc filesystem (3/3): add proc_show_options()
    This patch adds a show_options function to the proc filesystem.

    diff -pur l2/fs/proc/inode.c l3/fs/proc/inode.c
    --- l2/fs/proc/inode.c 2005-02-01 04:51:23.000000000 +0100
    +++ l3/fs/proc/inode.c 2005-02-01 04:51:07.000000000 +0100
    @@ -16,6 +16,7 @@
    #include <linux/module.h>
    #include <linux/parser.h>
    #include <linux/smp_lock.h>
    +#include <linux/seq_file.h>

    #include <asm/system.h>
    #include <asm/uaccess.h>
    @@ -23,6 +24,9 @@
    extern umode_t proc_umask;
    extern void free_proc_entry(struct proc_dir_entry *);

    +static int proc_root_inode_uid;
    +static int proc_root_inode_gid;
    +
    static inline struct proc_dir_entry * de_get(struct proc_dir_entry *de)
    {
    if (de)
    @@ -134,6 +138,17 @@ static int proc_remount(struct super_blo
    return 0;
    }

    +static int proc_show_options(struct seq_file *m, struct vfsmount *mnt)
    +{
    + if (proc_root_inode_uid != 0)
    + seq_printf(m, ",uid=%i", proc_root_inode_uid);
    + if (proc_root_inode_gid != 0)
    + seq_printf(m, ",gid=%i", proc_root_inode_gid);
    + if (proc_umask != 0)
    + seq_printf(m, ",umask=%04o", proc_umask);
    + return 0;
    +}
    +
    static struct super_operations proc_sops = {
    .alloc_inode = proc_alloc_inode,
    .destroy_inode = proc_destroy_inode,
    @@ -142,6 +157,7 @@ static struct super_operations proc_sops
    .delete_inode = proc_delete_inode,
    .statfs = simple_statfs,
    .remount_fs = proc_remount,
    + .show_options = proc_show_options,
    };

    enum {
    @@ -248,6 +264,8 @@ int proc_fill_super(struct super_block *
    struct inode * root_inode;

    proc_umask = 0;
    + proc_root_inode_uid = 0;
    + proc_root_inode_gid = 0;
    s->s_flags |= MS_NODIRATIME;
    s->s_blocksize = 1024;
    s->s_blocksize_bits = 10;
    @@ -262,12 +280,12 @@ int proc_fill_super(struct super_block *
    * Fixup the root inode's nlink value
    */
    root_inode->i_nlink += nr_processes();
    - root_inode->i_uid = 0;
    - root_inode->i_gid = 0;
    s->s_root = d_alloc_root(root_inode);
    if (!s->s_root)
    goto out_no_root;
    - parse_options(data, &root_inode->i_uid, &root_inode->i_gid);
    + parse_options(data, &proc_root_inode_uid, &proc_root_inode_gid);
    + root_inode->i_uid = proc_root_inode_uid;
    + root_inode->i_gid = proc_root_inode_gid;
    return 0;

    out_no_root:
    -
    To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
    the body of a message to majordomo@vger.kernel.org
    More majordomo info at http://vger.kernel.org/majordomo-info.html
    Please read the FAQ at http://www.tux.org/lkml/
    \
     
     \ /
      Last update: 2005-03-22 14:10    [W:0.023 / U:150.012 seconds]
    ©2003-2016 Jasper Spaans. hosted at Digital OceanAdvertise on this site