projects
/
cascardo
/
linux.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
firewire: a header cleanup
[cascardo/linux.git]
/
fs
/
namespace.c
diff --git
a/fs/namespace.c
b/fs/namespace.c
index
b696e3a
..
ddbda13
100644
(file)
--- a/
fs/namespace.c
+++ b/
fs/namespace.c
@@
-28,6
+28,7
@@
#include <asm/uaccess.h>
#include <asm/unistd.h>
#include "pnode.h"
#include <asm/uaccess.h>
#include <asm/unistd.h>
#include "pnode.h"
+#include "internal.h"
/* spinlock for vfsmount related operations, inplace of dcache_lock */
__cacheline_aligned_in_smp DEFINE_SPINLOCK(vfsmount_lock);
/* spinlock for vfsmount related operations, inplace of dcache_lock */
__cacheline_aligned_in_smp DEFINE_SPINLOCK(vfsmount_lock);
@@
-320,22
+321,16
@@
EXPORT_SYMBOL(mnt_unpin);
static void *m_start(struct seq_file *m, loff_t *pos)
{
struct mnt_namespace *n = m->private;
static void *m_start(struct seq_file *m, loff_t *pos)
{
struct mnt_namespace *n = m->private;
- struct list_head *p;
- loff_t l = *pos;
down_read(&namespace_sem);
down_read(&namespace_sem);
- list_for_each(p, &n->list)
- if (!l--)
- return list_entry(p, struct vfsmount, mnt_list);
- return NULL;
+ return seq_list_start(&n->list, *pos);
}
static void *m_next(struct seq_file *m, void *v, loff_t *pos)
{
struct mnt_namespace *n = m->private;
}
static void *m_next(struct seq_file *m, void *v, loff_t *pos)
{
struct mnt_namespace *n = m->private;
- struct list_head *p = ((struct vfsmount *)v)->mnt_list.next;
- (*pos)++;
- return p == &n->list ? NULL : list_entry(p, struct vfsmount, mnt_list);
+
+ return seq_list_next(v, &n->list, pos);
}
static void m_stop(struct seq_file *m, void *v)
}
static void m_stop(struct seq_file *m, void *v)
@@
-350,7
+345,7
@@
static inline void mangle(struct seq_file *m, const char *s)
static int show_vfsmnt(struct seq_file *m, void *v)
{
static int show_vfsmnt(struct seq_file *m, void *v)
{
- struct vfsmount *mnt =
v
;
+ struct vfsmount *mnt =
list_entry(v, struct vfsmount, mnt_list)
;
int err = 0;
static struct proc_fs_info {
int flag;
int err = 0;
static struct proc_fs_info {
int flag;
@@
-405,7
+400,7
@@
struct seq_operations mounts_op = {
static int show_vfsstat(struct seq_file *m, void *v)
{
static int show_vfsstat(struct seq_file *m, void *v)
{
- struct vfsmount *mnt =
v
;
+ struct vfsmount *mnt =
list_entry(v, struct vfsmount, mnt_list)
;
int err = 0;
/* device */
int err = 0;
/* device */
@@
-1457,7
+1452,7
@@
static struct mnt_namespace *dup_mnt_ns(struct mnt_namespace *mnt_ns,
new_ns = kmalloc(sizeof(struct mnt_namespace), GFP_KERNEL);
if (!new_ns)
new_ns = kmalloc(sizeof(struct mnt_namespace), GFP_KERNEL);
if (!new_ns)
- return
NULL
;
+ return
ERR_PTR(-ENOMEM)
;
atomic_set(&new_ns->count, 1);
INIT_LIST_HEAD(&new_ns->list);
atomic_set(&new_ns->count, 1);
INIT_LIST_HEAD(&new_ns->list);
@@
-1471,7
+1466,7
@@
static struct mnt_namespace *dup_mnt_ns(struct mnt_namespace *mnt_ns,
if (!new_ns->root) {
up_write(&namespace_sem);
kfree(new_ns);
if (!new_ns->root) {
up_write(&namespace_sem);
kfree(new_ns);
- return
NULL
;
+ return
ERR_PTR(-ENOMEM);
;
}
spin_lock(&vfsmount_lock);
list_add_tail(&new_ns->list, &new_ns->root->mnt_list);
}
spin_lock(&vfsmount_lock);
list_add_tail(&new_ns->list, &new_ns->root->mnt_list);
@@
-1515,7
+1510,7
@@
static struct mnt_namespace *dup_mnt_ns(struct mnt_namespace *mnt_ns,
return new_ns;
}
return new_ns;
}
-struct mnt_namespace *copy_mnt_ns(
int
flags, struct mnt_namespace *ns,
+struct mnt_namespace *copy_mnt_ns(
unsigned long
flags, struct mnt_namespace *ns,
struct fs_struct *new_fs)
{
struct mnt_namespace *new_ns;
struct fs_struct *new_fs)
{
struct mnt_namespace *new_ns;
@@
-1806,7
+1801,7
@@
void __init mnt_init(unsigned long mempages)
init_rwsem(&namespace_sem);
mnt_cache = kmem_cache_create("mnt_cache", sizeof(struct vfsmount),
init_rwsem(&namespace_sem);
mnt_cache = kmem_cache_create("mnt_cache", sizeof(struct vfsmount),
- 0, SLAB_HWCACHE_ALIGN | SLAB_PANIC, NULL
, NULL
);
+ 0, SLAB_HWCACHE_ALIGN | SLAB_PANIC, NULL);
mount_hashtable = (struct list_head *)__get_free_page(GFP_ATOMIC);
mount_hashtable = (struct list_head *)__get_free_page(GFP_ATOMIC);