> On Jan 19 2008 12:05, Miklos Szeredi wrote:
> >+
> >+/*
> >+ * Write full pathname from the root of the filesystem into the buffer.
> >+ */
> >+char *dentry_path(struct dentry *dentry, char *buf, int buflen)
> 
> Hm, this functions looks very much like __d_path(). Is it
> an unintentional copy?

It is similar, but there is a significant difference: __d_path() shows
the path relative to the current process's root (possibly crossing
mount points), while dentry_path() shows the path relative to the
_filesystem's_ root (ignoring mount points, and current root).

> >@@ -601,28 +635,29 @@ static inline void mangle(struct seq_fil
> >     seq_escape(m, s, " \t\n\\");
> > }
> > 
> >+static struct proc_fs_info {
> 
> These do not seem to be static data. Please mark them as const.
> 
> static const struct proc_fs_info.

OK.

> >+    int flag;
> >+    char *str;
> 
> const char *str.

OK.

> >+    seq_putc(m, ' ');
> >+    seq_puts(m, sb->s_flags & MS_RDONLY ? "ro" : "rw");
> >+    for (fs_infop = fs_info; fs_infop->flag; fs_infop++) {
> >+            if (sb->s_flags & fs_infop->flag)
> >+                    seq_puts(m, fs_infop->str);
> >+    }
> 
> {} could go.

The former is more readable, I think.  My rule is: surround anything
with {} if it's more than one line, even if not strictly necessary.
This is especially true for nested if/else statements, but makes sense
for 'for' as well.

> >+    if (sb->s_op->show_options)
> >+            err = sb->s_op->show_options(m, mnt);
> >+    if (IS_MNT_SHARED(mnt)) {
> >+            seq_printf(m, " shared:%i", get_peer_group_id(mnt));
> >+            if (IS_MNT_SLAVE(mnt))
> >+                    seq_printf(m, ",slave:%i", get_master_id(mnt));
> >+    } else if (IS_MNT_SLAVE(mnt)) {
> >+            seq_printf(m, " slave:%i", get_master_id(mnt));
> >+    } else if (IS_MNT_UNBINDABLE(mnt)) {
> >+            seq_printf(m, " unbindable");
> >+    } else {
> >+            seq_printf(m, " private");
> >+    }
> >+    seq_putc(m, '\n');
> >+    return err;
> >+}
> >+
> >+struct seq_operations mountinfo_op = {
> I think this can go const.

OK

> >--- linux.orig/include/linux/mount.h 2008-01-18 19:21:38.000000000 +0100
> >+++ linux/include/linux/mount.h      2008-01-18 23:39:35.000000000 +0100
> >@@ -56,6 +56,7 @@ struct vfsmount {
> >     struct list_head mnt_slave;     /* slave list entry */
> >     struct vfsmount *mnt_master;    /* slave is on master->mnt_slave_list */
> >     struct mnt_namespace *mnt_ns;   /* containing namespace */
> >+    int mnt_id;                     /* mount identifier */
> >     /*
> >      * We put mnt_count & mnt_expiry_mark at the end of struct vfsmount
> >      * to let these frequently modified fields in a separate cache line
> 
> Should/could it be unsigned int, or does it need to store -1?

IDA returns int, so why change it?  Going over 2^31 number of mounts
doesn't seem likely in the near future.

Thanks,
Miklos
-
To unsubscribe from this list: send the line "unsubscribe util-linux-ng" in
the body of a message to [EMAIL PROTECTED]
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to