[Cluster-devel] cluster/gfs-kernel/src/gfs Makefile main.c mou ...
rpeterso at sourceware.org
rpeterso at sourceware.org
Tue Jul 18 20:48:23 UTC 2006
CVSROOT: /cvs/cluster
Module name: cluster
Changes by: rpeterso at sourceware.org 2006-07-18 20:48:20
Modified files:
gfs-kernel/src/gfs: Makefile main.c mount.c ops_fstype.c
ops_super.c sys.c
Added files:
gfs-kernel/src/gfs: proc.c proc.h
Log message:
Add /proc/fs/gfs support back in.
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/gfs-kernel/src/gfs/proc.c.diff?cvsroot=cluster&r1=1.8&r2=1.9
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/gfs-kernel/src/gfs/proc.h.diff?cvsroot=cluster&r1=1.3&r2=1.4
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/gfs-kernel/src/gfs/Makefile.diff?cvsroot=cluster&r1=1.12&r2=1.13
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/gfs-kernel/src/gfs/main.c.diff?cvsroot=cluster&r1=1.8&r2=1.9
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/gfs-kernel/src/gfs/mount.c.diff?cvsroot=cluster&r1=1.13&r2=1.14
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/gfs-kernel/src/gfs/ops_fstype.c.diff?cvsroot=cluster&r1=1.25&r2=1.26
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/gfs-kernel/src/gfs/ops_super.c.diff?cvsroot=cluster&r1=1.21&r2=1.22
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/gfs-kernel/src/gfs/sys.c.diff?cvsroot=cluster&r1=1.2&r2=1.3
--- cluster/gfs-kernel/src/gfs/proc.c 2006/07/10 23:22:34 1.8
+++ cluster/gfs-kernel/src/gfs/proc.c 2006/07/18 20:48:20 1.9
@@ -43,11 +43,9 @@
void
gfs_proc_fs_add(struct gfs_sbd *sdp)
{
- ENTER(GFN_PROC_FS_ADD)
down(&gfs_fs_lock);
list_add(&sdp->sd_list, &gfs_fs_list);
up(&gfs_fs_lock);
- RET(GFN_PROC_FS_ADD);
}
/**
@@ -59,11 +57,9 @@
void
gfs_proc_fs_del(struct gfs_sbd *sdp)
{
- ENTER(GFN_PROC_FS_DEL)
down(&gfs_fs_lock);
list_del(&sdp->sd_list);
up(&gfs_fs_lock);
- RET(GFN_PROC_FS_DEL);
}
/**
@@ -77,7 +73,6 @@
static ssize_t
do_list(char *user_buf, size_t size)
{
- ENTER(GFN_DO_LIST)
struct list_head *tmp;
struct gfs_sbd *sdp = NULL;
unsigned int x;
@@ -124,7 +119,7 @@
out:
up(&gfs_fs_lock);
- RETURN(GFN_DO_LIST, error);
+ return error;
}
/**
@@ -137,19 +132,18 @@
static char *
find_argument(char *p)
{
- ENTER(GFN_FIND_ARGUMENT)
char *p2;
while (*p == ' ' || *p == '\n')
p++;
if (!*p)
- RETURN(GFN_FIND_ARGUMENT, NULL);
+ return NULL;
for (p2 = p; *p2; p2++) /* do nothing */;
p2--;
while (*p2 == ' ' || *p2 == '\n')
*p2-- = 0;
- RETURN(GFN_FIND_ARGUMENT, p);
+ return p;
}
/**
@@ -162,7 +156,6 @@
static int
do_freeze(char *p)
{
- ENTER(GFN_DO_FREEZE)
struct list_head *tmp;
struct gfs_sbd *sdp;
char num[21];
@@ -170,7 +163,7 @@
p = find_argument(p + 6);
if (!p)
- RETURN(GFN_DO_FREEZE, -ENOENT);
+ return -ENOENT;
down(&gfs_fs_lock);
@@ -188,7 +181,7 @@
up(&gfs_fs_lock);
- RETURN(GFN_DO_FREEZE, error);
+ return error;
}
/**
@@ -201,7 +194,6 @@
static int
do_unfreeze(char *p)
{
- ENTER(GFN_DO_UNFREEZE)
struct list_head *tmp;
struct gfs_sbd *sdp;
char num[21];
@@ -209,7 +201,7 @@
p = find_argument(p + 8);
if (!p)
- RETURN(GFN_DO_UNFREEZE, -ENOENT);
+ return -ENOENT;
down(&gfs_fs_lock);
@@ -227,7 +219,7 @@
up(&gfs_fs_lock);
- RETURN(GFN_DO_UNFREEZE, error);
+ return error;
}
/**
@@ -240,16 +232,15 @@
static int
do_margs(char *p)
{
- ENTER(GFN_DO_MARGS)
char *new_buf, *old_buf;
p = find_argument(p + 5);
if (!p)
- RETURN(GFN_DO_MARGS, -ENOENT);
+ return -ENOENT;
new_buf = kmalloc(strlen(p) + 1, GFP_KERNEL);
if (!new_buf)
- RETURN(GFN_DO_MARGS, -ENOMEM);
+ return -ENOMEM;
strcpy(new_buf, p);
spin_lock(&gfs_proc_margs_lock);
@@ -260,7 +251,7 @@
if (old_buf)
kfree(old_buf);
- RETURN(GFN_DO_MARGS, 0);
+ return 0;
}
/**
@@ -273,7 +264,6 @@
static int
do_withdraw(char *p)
{
- ENTER(GFN_DO_WITHDRAW)
struct list_head *tmp;
struct gfs_sbd *sdp;
char num[21];
@@ -281,7 +271,7 @@
p = find_argument(p + 8);
if (!p)
- RETURN(GFN_DO_WITHDRAW, -ENOENT);
+ return -ENOENT;
down(&gfs_fs_lock);
@@ -301,7 +291,7 @@
up(&gfs_fs_lock);
- RETURN(GFN_DO_WITHDRAW, error);
+ return error;
}
/**
@@ -316,7 +306,6 @@
static int
do_lockdump(char *p, char *buf, size_t size)
{
- ENTER(GFN_DO_LOCKDUMP)
struct list_head *tmp;
struct gfs_sbd *sdp;
char num[21];
@@ -325,7 +314,7 @@
p = find_argument(p + 8);
if (!p)
- RETURN(GFN_DO_LOCKDUMP, -ENOENT);
+ return -ENOENT;
down(&gfs_fs_lock);
@@ -350,7 +339,7 @@
up(&gfs_fs_lock);
- RETURN(GFN_DO_LOCKDUMP, error);
+ return error;
}
/**
@@ -366,7 +355,6 @@
static ssize_t
gfs_proc_write(struct file *file, const char *buf, size_t size, loff_t *offset)
{
- ENTER(GFN_PROC_WRITE)
char *p;
spin_lock(&req_lock);
@@ -378,23 +366,23 @@
kfree(p);
if (!size)
- RETURN(GFN_PROC_WRITE, -EINVAL);
+ return -EINVAL;
p = kmalloc(size + 1, GFP_KERNEL);
if (!p)
- RETURN(GFN_PROC_WRITE, -ENOMEM);
+ return -ENOMEM;
p[size] = 0;
if (copy_from_user(p, buf, size)) {
kfree(p);
- RETURN(GFN_PROC_WRITE, -EFAULT);
+ return -EFAULT;
}
spin_lock(&req_lock);
file->private_data = p;
spin_unlock(&req_lock);
- RETURN(GFN_PROC_WRITE, size);
+ return size;
}
/**
@@ -410,7 +398,6 @@
static ssize_t
gfs_proc_read(struct file *file, char *buf, size_t size, loff_t *offset)
{
- ENTER(GFN_PROC_READ)
char *p;
int error;
@@ -420,11 +407,11 @@
spin_unlock(&req_lock);
if (!p)
- RETURN(GFN_PROC_READ, -ENOENT);
+ return -ENOENT;
if (!size) {
kfree(p);
- RETURN(GFN_PROC_READ, -EINVAL);
+ return -EINVAL;
}
if (strncmp(p, "list", 4) == 0)
@@ -444,7 +431,7 @@
kfree(p);
- RETURN(GFN_PROC_READ, error);
+ return error;
}
/**
@@ -458,10 +445,9 @@
static int
gfs_proc_close(struct inode *inode, struct file *file)
{
- ENTER(GFN_PROC_CLOSE)
if (file->private_data)
kfree(file->private_data);
- RETURN(GFN_PROC_CLOSE, 0);
+ return 0;
}
static struct file_operations gfs_proc_fops =
@@ -480,7 +466,6 @@
int
gfs_proc_init(void)
{
- ENTER(GFN_PROC_INIT)
struct proc_dir_entry *pde;
INIT_LIST_HEAD(&gfs_fs_list);
@@ -491,12 +476,12 @@
pde = create_proc_entry("fs/gfs", S_IFREG | 0600, NULL);
if (!pde)
- RETURN(GFN_PROC_INIT, -ENOMEM);
+ return -ENOMEM;
pde->owner = THIS_MODULE;
pde->proc_fops = &gfs_proc_fops;
- RETURN(GFN_PROC_INIT, 0);
+ return 0;
}
/**
@@ -507,10 +492,8 @@
void
gfs_proc_uninit(void)
{
- ENTER(GFN_PROC_UNINIT)
if (gfs_proc_margs)
kfree(gfs_proc_margs);
remove_proc_entry("fs/gfs", NULL);
- RET(GFN_PROC_UNINIT);
}
diff -u -r1.3 -r1.4
--- cluster/gfs-kernel/src/gfs/Makefile 2006/07/11 17:29:24 1.12
+++ cluster/gfs-kernel/src/gfs/Makefile 2006/07/18 20:48:20 1.13
@@ -55,6 +55,7 @@
ops_super.o \
ops_vm.o \
page.o \
+ proc.o \
quota.o \
recovery.o \
rgrp.o \
--- cluster/gfs-kernel/src/gfs/main.c 2006/07/10 23:22:34 1.8
+++ cluster/gfs-kernel/src/gfs/main.c 2006/07/18 20:48:20 1.9
@@ -25,6 +25,7 @@
#include "gfs.h"
#include "ops_fstype.h"
#include "sys.h"
+#include "proc.h"
/**
* init_gfs_fs - Register GFS as a filesystem
@@ -41,6 +42,9 @@
error = gfs_sys_init();
if (error)
return error;
+ error = gfs_proc_init();
+ if (error)
+ goto fail;
gfs_random_number = xtime.tv_nsec;
@@ -94,6 +98,8 @@
if (gfs_glock_cachep)
kmem_cache_destroy(gfs_glock_cachep);
+ gfs_proc_uninit();
+
fail:
gfs_sys_uninit();
@@ -115,6 +121,7 @@
kmem_cache_destroy(gfs_inode_cachep);
kmem_cache_destroy(gfs_glock_cachep);
+ gfs_proc_uninit();
gfs_sys_uninit();
}
--- cluster/gfs-kernel/src/gfs/mount.c 2006/07/11 17:29:24 1.13
+++ cluster/gfs-kernel/src/gfs/mount.c 2006/07/18 20:48:20 1.14
@@ -21,6 +21,7 @@
#include "gfs.h"
#include "mount.h"
+#include "proc.h"
#include "sys.h"
/**
@@ -40,6 +41,15 @@
/* If someone preloaded options, use those instead */
+ spin_lock(&gfs_proc_margs_lock);
+ if (gfs_proc_margs) {
+ data = gfs_proc_margs;
+ gfs_proc_margs = NULL;
+ }
+ spin_unlock(&gfs_proc_margs_lock);
+
+ /* Set some defaults */
+
memset(args, 0, sizeof(struct gfs_args));
args->ar_num_glockd = GFS_GLOCKD_DEFAULT;
--- cluster/gfs-kernel/src/gfs/ops_fstype.c 2006/07/10 23:22:34 1.25
+++ cluster/gfs-kernel/src/gfs/ops_fstype.c 2006/07/18 20:48:20 1.26
@@ -28,11 +28,12 @@
#include "ops_export.h"
#include "ops_fstype.h"
#include "ops_super.h"
-#include "sys.h"
+#include "proc.h"
#include "quota.h"
#include "recovery.h"
#include "rgrp.h"
#include "super.h"
+#include "sys.h"
#include "unlinked.h"
#define DO 0
@@ -669,6 +670,7 @@
if (error)
goto fail_journal;
+ gfs_proc_fs_add(sdp);
gfs_glock_dq_uninit(&mount_gh);
return 0;
--- cluster/gfs-kernel/src/gfs/ops_super.c 2006/07/10 23:22:34 1.21
+++ cluster/gfs-kernel/src/gfs/ops_super.c 2006/07/18 20:48:20 1.22
@@ -32,11 +32,12 @@
#include "ops_fstype.h"
#include "ops_super.h"
#include "page.h"
-#include "sys.h"
+#include "proc.h"
#include "quota.h"
#include "recovery.h"
#include "rgrp.h"
#include "super.h"
+#include "sys.h"
#include "mount.h"
/**
@@ -101,6 +102,8 @@
atomic_inc(&sdp->sd_ops_super);
+ gfs_proc_fs_del(sdp);
+
/* Unfreeze the filesystem, if we need to */
down(&sdp->sd_freeze_lock);
--- cluster/gfs-kernel/src/gfs/sys.c 2006/07/11 17:29:24 1.2
+++ cluster/gfs-kernel/src/gfs/sys.c 2006/07/18 20:48:20 1.3
@@ -28,11 +28,8 @@
#include "sys.h"
#include "super.h"
-struct list_head gfs_fs_list;
-struct semaphore gfs_fs_lock;
char *gfs_sys_margs;
spinlock_t gfs_sys_margs_lock;
-spinlock_t req_lock;
static ssize_t id_show(struct gfs_sbd *sdp, char *buf)
{
More information about the Cluster-devel
mailing list