Skip to content

Commit

Permalink
proc: make struct proc_dir_entry::namelen unsigned int
Browse files Browse the repository at this point in the history
1. namelen is declared "unsigned short" which hints for "maybe space savings".
   Indeed in 2.4 struct proc_dir_entry looked like:

        struct proc_dir_entry {
                unsigned short low_ino;
                unsigned short namelen;

   Now, low_ino is "unsigned int", all savings were gone for a long time.
   "struct proc_dir_entry" is not that countless to worry about it's size,
   anyway.

2. converting from unsigned short to int/unsigned int can only create
   problems, we better play it safe.

Space is not really conserved, because of natural alignment for the next
field.  sizeof(struct proc_dir_entry) remains the same.

Signed-off-by: Alexey Dobriyan <adobriyan@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
  • Loading branch information
Alexey Dobriyan authored and Linus Torvalds committed Mar 24, 2011
1 parent fc3d876 commit 312ec7e
Show file tree
Hide file tree
Showing 2 changed files with 5 additions and 5 deletions.
8 changes: 4 additions & 4 deletions fs/proc/generic.c
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@

DEFINE_SPINLOCK(proc_subdir_lock);

static int proc_match(int len, const char *name, struct proc_dir_entry *de)
static int proc_match(unsigned int len, const char *name, struct proc_dir_entry *de)
{
if (de->namelen != len)
return 0;
Expand Down Expand Up @@ -303,7 +303,7 @@ static int __xlate_proc_name(const char *name, struct proc_dir_entry **ret,
{
const char *cp = name, *next;
struct proc_dir_entry *de;
int len;
unsigned int len;

de = *ret;
if (!de)
Expand Down Expand Up @@ -602,7 +602,7 @@ static struct proc_dir_entry *__proc_create(struct proc_dir_entry **parent,
{
struct proc_dir_entry *ent = NULL;
const char *fn = name;
int len;
unsigned int len;

/* make sure name is valid */
if (!name || !strlen(name)) goto out;
Expand Down Expand Up @@ -786,7 +786,7 @@ void remove_proc_entry(const char *name, struct proc_dir_entry *parent)
struct proc_dir_entry **p;
struct proc_dir_entry *de = NULL;
const char *fn = name;
int len;
unsigned int len;

spin_lock(&proc_subdir_lock);
if (__xlate_proc_name(name, &parent, &fn) != 0) {
Expand Down
2 changes: 1 addition & 1 deletion include/linux/proc_fs.h
Original file line number Diff line number Diff line change
Expand Up @@ -50,7 +50,7 @@ typedef int (write_proc_t)(struct file *file, const char __user *buffer,

struct proc_dir_entry {
unsigned int low_ino;
unsigned short namelen;
unsigned int namelen;
const char *name;
mode_t mode;
nlink_t nlink;
Expand Down

0 comments on commit 312ec7e

Please sign in to comment.