X-Git-Url: http://git.onelab.eu/?a=blobdiff_plain;f=fs%2Fcoda%2Fpsdev.c;h=6c6771db36da4f482f123a42f92c852e90cf05fd;hb=43bc926fffd92024b46cafaf7350d669ba9ca884;hp=6793b3740471088cd49406854bf5c23310ae1d8d;hpb=9bf4aaab3e101692164d49b7ca357651eb691cb6;p=linux-2.6.git diff --git a/fs/coda/psdev.c b/fs/coda/psdev.c index 6793b3740..6c6771db3 100644 --- a/fs/coda/psdev.c +++ b/fs/coda/psdev.c @@ -22,7 +22,6 @@ #include #include #include -#include #include #include #include @@ -49,12 +48,9 @@ #include #include -#define upc_free(r) kfree(r) +#include "coda_int.h" -/* - * Coda stuff - */ -extern struct file_system_type coda_fs_type; +#define upc_free(r) kfree(r) /* statistics */ int coda_hard; /* allows signals during upcalls */ @@ -62,7 +58,7 @@ unsigned long coda_timeout = 30; /* .. secs, then signals will dequeue */ struct venus_comm coda_comms[MAX_CODADEVS]; -static struct class_simple *coda_psdev_class; +static struct class *coda_psdev_class; /* * Device operations @@ -310,8 +306,7 @@ static int coda_psdev_open(struct inode * inode, struct file * file) static int coda_psdev_release(struct inode * inode, struct file * file) { struct venus_comm *vcp = (struct venus_comm *) file->private_data; - struct upc_req *req; - struct list_head *lh, *next; + struct upc_req *req, *tmp; lock_kernel(); if ( !vcp->vc_inuse ) { @@ -326,8 +321,7 @@ static int coda_psdev_release(struct inode * inode, struct file * file) } /* Wakeup clients so they can return. */ - list_for_each_safe(lh, next, &vcp->vc_pending) { - req = list_entry(lh, struct upc_req, uc_chain); + list_for_each_entry_safe(req, tmp, &vcp->vc_pending, uc_chain) { /* Async requests need to be freed here */ if (req->uc_flags & REQ_ASYNC) { CODA_FREE(req->uc_data, sizeof(struct coda_in_hdr)); @@ -348,7 +342,7 @@ static int coda_psdev_release(struct inode * inode, struct file * file) } -static struct file_operations coda_psdev_fops = { +static const struct file_operations coda_psdev_fops = { .owner = THIS_MODULE, .read = coda_psdev_read, .write = coda_psdev_write, @@ -361,21 +355,20 @@ static struct file_operations coda_psdev_fops = { static int init_coda_psdev(void) { int i, err = 0; - if (register_chrdev(CODA_PSDEV_MAJOR,"coda_psdev", - &coda_psdev_fops)) { + if (register_chrdev(CODA_PSDEV_MAJOR, "coda", &coda_psdev_fops)) { printk(KERN_ERR "coda_psdev: unable to get major %d\n", CODA_PSDEV_MAJOR); return -EIO; } - coda_psdev_class = class_simple_create(THIS_MODULE, "coda_psdev"); + coda_psdev_class = class_create(THIS_MODULE, "coda"); if (IS_ERR(coda_psdev_class)) { err = PTR_ERR(coda_psdev_class); goto out_chrdev; } devfs_mk_dir ("coda"); for (i = 0; i < MAX_CODADEVS; i++) { - class_simple_device_add(coda_psdev_class, MKDEV(CODA_PSDEV_MAJOR,i), - NULL, "cfs%d", i); + class_device_create(coda_psdev_class, NULL, + MKDEV(CODA_PSDEV_MAJOR,i), NULL, "cfs%d", i); err = devfs_mk_cdev(MKDEV(CODA_PSDEV_MAJOR, i), S_IFCHR|S_IRUSR|S_IWUSR, "coda/%d", i); if (err) @@ -386,10 +379,10 @@ static int init_coda_psdev(void) out_class: for (i = 0; i < MAX_CODADEVS; i++) - class_simple_device_remove(MKDEV(CODA_PSDEV_MAJOR, i)); - class_simple_destroy(coda_psdev_class); + class_device_destroy(coda_psdev_class, MKDEV(CODA_PSDEV_MAJOR, i)); + class_destroy(coda_psdev_class); out_chrdev: - unregister_chrdev(CODA_PSDEV_MAJOR, "coda_psdev"); + unregister_chrdev(CODA_PSDEV_MAJOR, "coda"); out: return err; } @@ -398,14 +391,12 @@ out: MODULE_AUTHOR("Peter J. Braam "); MODULE_LICENSE("GPL"); -extern int coda_init_inodecache(void); -extern void coda_destroy_inodecache(void); static int __init init_coda(void) { int status; int i; printk(KERN_INFO "Coda Kernel/Venus communications, " -#ifdef CODA_FS_OLD_API +#ifdef CONFIG_CODA_FS_OLD_API "v5.3.20" #else "v6.0.0" @@ -429,12 +420,12 @@ static int __init init_coda(void) return 0; out: for (i = 0; i < MAX_CODADEVS; i++) { - class_simple_device_remove(MKDEV(CODA_PSDEV_MAJOR, i)); + class_device_destroy(coda_psdev_class, MKDEV(CODA_PSDEV_MAJOR, i)); devfs_remove("coda/%d", i); } - class_simple_destroy(coda_psdev_class); + class_destroy(coda_psdev_class); devfs_remove("coda"); - unregister_chrdev(CODA_PSDEV_MAJOR,"coda_psdev"); + unregister_chrdev(CODA_PSDEV_MAJOR, "coda"); coda_sysctl_clean(); out1: coda_destroy_inodecache(); @@ -451,12 +442,12 @@ static void __exit exit_coda(void) printk("coda: failed to unregister filesystem\n"); } for (i = 0; i < MAX_CODADEVS; i++) { - class_simple_device_remove(MKDEV(CODA_PSDEV_MAJOR, i)); + class_device_destroy(coda_psdev_class, MKDEV(CODA_PSDEV_MAJOR, i)); devfs_remove("coda/%d", i); } - class_simple_destroy(coda_psdev_class); + class_destroy(coda_psdev_class); devfs_remove("coda"); - unregister_chrdev(CODA_PSDEV_MAJOR, "coda_psdev"); + unregister_chrdev(CODA_PSDEV_MAJOR, "coda"); coda_sysctl_clean(); coda_destroy_inodecache(); }