* [Cluster-devel] cluster/gnbd-kernel/src gnbd.c
@ 2006-12-18 18:17 bmarzins
0 siblings, 0 replies; 10+ messages in thread
From: bmarzins @ 2006-12-18 18:17 UTC (permalink / raw)
To: cluster-devel.redhat.com
CVSROOT: /cvs/cluster
Module name: cluster
Branch: RHEL50
Changes by: bmarzins at sourceware.org 2006-12-18 18:17:45
Modified files:
gnbd-kernel/src: gnbd.c
Log message:
GNBD was hanging with the cfq scheduler, so I changed the default scheduler for
all gnbd devices to the anticipatory scheduler. This resolves bz #212428
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/gnbd-kernel/src/gnbd.c.diff?cvsroot=cluster&only_with_tag=RHEL50&r1=1.15.4.1&r2=1.15.4.2
--- cluster/gnbd-kernel/src/gnbd.c 2006/11/21 22:01:42 1.15.4.1
+++ cluster/gnbd-kernel/src/gnbd.c 2006/12/18 18:17:44 1.15.4.2
@@ -910,6 +910,13 @@
put_disk(disk);
goto out;
}
+ elevator_exit(disk->queue->elevator);
+ err = elevator_init(disk->queue, "anticipatory");
+ if (err) {
+ blk_cleanup_queue(disk->queue);
+ put_disk(disk);
+ goto out;
+ }
}
major_nr = register_blkdev(major_nr, "gnbd");
if (major_nr < 0) {
^ permalink raw reply [flat|nested] 10+ messages in thread* [Cluster-devel] cluster/gnbd-kernel/src gnbd.c
@ 2008-01-28 6:13 fabbione
0 siblings, 0 replies; 10+ messages in thread
From: fabbione @ 2008-01-28 6:13 UTC (permalink / raw)
To: cluster-devel.redhat.com
CVSROOT: /cvs/cluster
Module name: cluster
Changes by: fabbione at sourceware.org 2008-01-28 06:13:15
Modified files:
gnbd-kernel/src: gnbd.c
Log message:
Update gnbd kernel modules to build with 2.6.24
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/gnbd-kernel/src/gnbd.c.diff?cvsroot=cluster&r1=1.20&r2=1.21
--- cluster/gnbd-kernel/src/gnbd.c 2007/06/19 22:31:56 1.20
+++ cluster/gnbd-kernel/src/gnbd.c 2008/01/28 06:13:15 1.21
@@ -168,7 +168,7 @@
if (down_trylock(&dev->do_it_lock))
return -EBUSY;
- res = sscanf(buf, "%Lu\n", &size);
+ res = sscanf(buf, "%Lu\n", (unsigned long long int *)&size);
if (res != 1){
up(&dev->do_it_lock);
return -EINVAL;
@@ -267,7 +267,7 @@
static void gnbd_end_request(struct request *req)
{
int uptodate = (req->errors == 0) ? 1 : 0;
- request_queue_t *q = req->q;
+ struct request_queue *q = req->q;
unsigned long flags;
dprintk(DBG_BLKDEV, "%s: request %p: %s\n", req->rq_disk->disk_name,
@@ -369,7 +369,7 @@
int __gnbd_send_req(struct gnbd_device *dev, struct socket *sock,
struct request *req, int can_signal)
{
- int result, i, flags;
+ int result, flags;
struct gnbd_request request;
unsigned long size = req->nr_sectors << 9;
@@ -403,28 +403,26 @@
}
if (gnbd_cmd(req) == GNBD_CMD_WRITE) {
- struct bio *bio;
+ struct req_iterator iter;
+ struct bio_vec *bvec;
/*
* we are really probing@internals to determine
* whether to set MSG_MORE or not...
*/
- rq_for_each_bio(bio, req) {
- struct bio_vec *bvec;
- bio_for_each_segment(bvec, bio, i) {
- flags = 0;
- if ((i < (bio->bi_vcnt - 1)) || bio->bi_next)
- flags = MSG_MORE;
- dprintk(DBG_TX, "%s: request %p: sending %d bytes data\n",
- dev->disk->disk_name, req,
- bvec->bv_len);
- result = sock_send_bvec(sock, bvec, flags,
- can_signal);
- if (result < 0) {
- printk(KERN_ERR "%s: Send data failed (result %d)\n",
- dev->disk->disk_name,
- result);
- goto error_out;
- }
+ rq_for_each_segment(bvec, req, iter) {
+ flags = 0;
+ if (!rq_iter_last(req, iter))
+ flags = MSG_MORE;
+ dprintk(DBG_TX, "%s: request %p: sending %d bytes data\n",
+ dev->disk->disk_name, req,
+ bvec->bv_len);
+ result = sock_send_bvec(sock, bvec, flags,
+ can_signal);
+ if (result < 0) {
+ printk(KERN_ERR "%s: Send data failed (result %d)\n",
+ dev->disk->disk_name,
+ result);
+ goto error_out;
}
}
}
@@ -464,21 +462,19 @@
int gnbd_recv_req(struct gnbd_device *dev, struct request *req)
{
int result;
- int i;
- struct bio *bio;
- rq_for_each_bio(bio, req) {
- struct bio_vec *bvec;
- bio_for_each_segment(bvec, bio, i) {
- result = sock_recv_bvec(dev->sock, bvec);
- if (result < 0) {
- printk(KERN_ERR "%s: Receive data failed (result %d)\n",
- dev->disk->disk_name,
- result);
- return result;
- }
- dprintk(DBG_RX, "%s: request %p: got %d bytes data\n",
- dev->disk->disk_name, req, bvec->bv_len);
+ struct bio_vec *bvec;
+ struct req_iterator iter;
+
+ rq_for_each_segment(bvec, req, iter) {
+ result = sock_recv_bvec(dev->sock, bvec);
+ if (result < 0) {
+ printk(KERN_ERR "%s: Receive data failed (result %d)\n",
+ dev->disk->disk_name,
+ result);
+ return result;
}
+ dprintk(DBG_RX, "%s: request %p: got %d bytes data\n",
+ dev->disk->disk_name, req, bvec->bv_len);
}
return 0;
}
@@ -565,7 +561,7 @@
* { printk( "Warning: Ignoring result!\n"); gnbd_end_request( req ); }
*/
-static void do_gnbd_request(request_queue_t * q)
+static void do_gnbd_request(struct request_queue *q)
{
int err;
struct request *req;
^ permalink raw reply [flat|nested] 10+ messages in thread* [Cluster-devel] cluster/gnbd-kernel/src gnbd.c
@ 2007-06-19 22:34 bmarzins
0 siblings, 0 replies; 10+ messages in thread
From: bmarzins @ 2007-06-19 22:34 UTC (permalink / raw)
To: cluster-devel.redhat.com
CVSROOT: /cvs/cluster
Module name: cluster
Branch: RHEL5
Changes by: bmarzins at sourceware.org 2007-06-19 22:34:07
Modified files:
gnbd-kernel/src: gnbd.c
Log message:
GNBD doesn't need to flush the cache after it looses connection with the server.Either it will be multipathed, and the multipath device will own the cache, or
it won't and flushing the cache will get you nothing more than a flood of error
messages all at once, instead of a stream.
Related: bz 242794
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/gnbd-kernel/src/gnbd.c.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.15.2.2&r2=1.15.2.3
--- cluster/gnbd-kernel/src/gnbd.c 2006/12/18 18:15:27 1.15.2.2
+++ cluster/gnbd-kernel/src/gnbd.c 2007/06/19 22:34:07 1.15.2.3
@@ -713,8 +713,10 @@
bdev = dev->bdev;
if (bdev) {
blk_run_queue(dev->disk->queue);
+#if 0
fsync_bdev(bdev);
invalidate_bdev(bdev, 0);
+#endif
}
up(&dev->do_it_lock);
return 0;
^ permalink raw reply [flat|nested] 10+ messages in thread* [Cluster-devel] cluster/gnbd-kernel/src gnbd.c
@ 2007-06-19 22:31 bmarzins
0 siblings, 0 replies; 10+ messages in thread
From: bmarzins @ 2007-06-19 22:31 UTC (permalink / raw)
To: cluster-devel.redhat.com
CVSROOT: /cvs/cluster
Module name: cluster
Changes by: bmarzins at sourceware.org 2007-06-19 22:31:56
Modified files:
gnbd-kernel/src: gnbd.c
Log message:
GNBD doesn't need to flush the cache after it looses connection with the server.
Either it will be multipathed, and the multipath device will own the cache, or
it won't and flushing the cache will get you nothing more than a flood of error
messages all at once, instead of a stream.
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/gnbd-kernel/src/gnbd.c.diff?cvsroot=cluster&r1=1.19&r2=1.20
--- cluster/gnbd-kernel/src/gnbd.c 2007/06/06 15:11:54 1.19
+++ cluster/gnbd-kernel/src/gnbd.c 2007/06/19 22:31:56 1.20
@@ -713,8 +713,10 @@
bdev = dev->bdev;
if (bdev) {
blk_run_queue(dev->disk->queue);
+#if 0
fsync_bdev(bdev);
invalidate_bdev(bdev);
+#endif
}
up(&dev->do_it_lock);
return 0;
^ permalink raw reply [flat|nested] 10+ messages in thread* [Cluster-devel] cluster/gnbd-kernel/src gnbd.c
@ 2007-01-05 23:01 bmarzins
0 siblings, 0 replies; 10+ messages in thread
From: bmarzins @ 2007-01-05 23:01 UTC (permalink / raw)
To: cluster-devel.redhat.com
CVSROOT: /cvs/cluster
Module name: cluster
Changes by: bmarzins at sourceware.org 2007-01-05 23:01:58
Modified files:
gnbd-kernel/src: gnbd.c
Log message:
Get GNBD compiling with the latest upstream kernel.
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/gnbd-kernel/src/gnbd.c.diff?cvsroot=cluster&r1=1.17&r2=1.18
--- cluster/gnbd-kernel/src/gnbd.c 2006/12/18 18:18:22 1.17
+++ cluster/gnbd-kernel/src/gnbd.c 2007/01/05 23:01:58 1.18
@@ -574,12 +574,12 @@
struct gnbd_device *dev;
blkdev_dequeue_request(req);
- dprintk(DBG_BLKDEV, "%s: request %p: dequeued (flags=%lx)\n",
- req->rq_disk->disk_name, req, req->flags);
+ dprintk(DBG_BLKDEV, "%s: request %p: dequeued (flags=%x)\n",
+ req->rq_disk->disk_name, req, req->cmd_type);
- if (!(req->flags & REQ_CMD))
+ if (!blk_fs_request(req))
goto error_out;
-
+
dev = req->rq_disk->private_data;
if (dev->receiver_pid == -1)
@@ -885,12 +885,12 @@
printk(KERN_CRIT "gnbd: sizeof gnbd_request needs to be 28 in order to work!\n" );
return -EIO;
}
- shutdown_req.flags = REQ_SPECIAL;
+ shutdown_req.cmd_type = REQ_TYPE_SPECIAL;
gnbd_cmd(&shutdown_req) = GNBD_CMD_DISC;
shutdown_req.sector = 0;
shutdown_req.nr_sectors = 0;
- ping_req.flags = REQ_SPECIAL;
+ ping_req.cmd_type = REQ_TYPE_SPECIAL;
gnbd_cmd(&ping_req) = GNBD_CMD_PING;
ping_req.sector = 0;
ping_req.nr_sectors = 0;
^ permalink raw reply [flat|nested] 10+ messages in thread
* [Cluster-devel] cluster/gnbd-kernel/src gnbd.c
@ 2006-12-18 18:18 bmarzins
0 siblings, 0 replies; 10+ messages in thread
From: bmarzins @ 2006-12-18 18:18 UTC (permalink / raw)
To: cluster-devel.redhat.com
CVSROOT: /cvs/cluster
Module name: cluster
Changes by: bmarzins at sourceware.org 2006-12-18 18:18:23
Modified files:
gnbd-kernel/src: gnbd.c
Log message:
GNBD was hanging with the cfq scheduler, so I changed the default scheduler for
all gnbd devices to the anticipatory scheduler.
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/gnbd-kernel/src/gnbd.c.diff?cvsroot=cluster&r1=1.16&r2=1.17
--- cluster/gnbd-kernel/src/gnbd.c 2006/11/10 22:17:39 1.16
+++ cluster/gnbd-kernel/src/gnbd.c 2006/12/18 18:18:22 1.17
@@ -910,6 +910,13 @@
put_disk(disk);
goto out;
}
+ elevator_exit(disk->queue->elevator);
+ err = elevator_init(disk->queue, "anticipatory");
+ if (err) {
+ blk_cleanup_queue(disk->queue);
+ put_disk(disk);
+ goto out;
+ }
}
major_nr = register_blkdev(major_nr, "gnbd");
if (major_nr < 0) {
^ permalink raw reply [flat|nested] 10+ messages in thread* [Cluster-devel] cluster/gnbd-kernel/src gnbd.c
@ 2006-12-18 18:15 bmarzins
0 siblings, 0 replies; 10+ messages in thread
From: bmarzins @ 2006-12-18 18:15 UTC (permalink / raw)
To: cluster-devel.redhat.com
CVSROOT: /cvs/cluster
Module name: cluster
Branch: RHEL5
Changes by: bmarzins at sourceware.org 2006-12-18 18:15:28
Modified files:
gnbd-kernel/src: gnbd.c
Log message:
GNBD was hanging with the cfq scheduler, so I changed the default scheduler for
all gnbd devices to the anticipatory scheduler. This resolves bz #212428
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/gnbd-kernel/src/gnbd.c.diff?cvsroot=cluster&only_with_tag=RHEL5&r1=1.15.2.1&r2=1.15.2.2
--- cluster/gnbd-kernel/src/gnbd.c 2006/11/10 22:16:47 1.15.2.1
+++ cluster/gnbd-kernel/src/gnbd.c 2006/12/18 18:15:27 1.15.2.2
@@ -910,6 +910,13 @@
put_disk(disk);
goto out;
}
+ elevator_exit(disk->queue->elevator);
+ err = elevator_init(disk->queue, "anticipatory");
+ if (err) {
+ blk_cleanup_queue(disk->queue);
+ put_disk(disk);
+ goto out;
+ }
}
major_nr = register_blkdev(major_nr, "gnbd");
if (major_nr < 0) {
^ permalink raw reply [flat|nested] 10+ messages in thread* [Cluster-devel] cluster/gnbd-kernel/src gnbd.c
@ 2006-11-09 21:22 bmarzins
0 siblings, 0 replies; 10+ messages in thread
From: bmarzins @ 2006-11-09 21:22 UTC (permalink / raw)
To: cluster-devel.redhat.com
CVSROOT: /cvs/cluster
Module name: cluster
Branch: RHEL4
Changes by: bmarzins at sourceware.org 2006-11-09 21:22:40
Modified files:
gnbd-kernel/src: gnbd.c
Log message:
It was previously possible to confuse gnbd by sending a process a signal while
gnbd was writing to the socket (bz 210453). This usually hangs the socket, but
can possibly cause data corruption. To fix this gnbd now only handles signals
for gnbd_recvd. GNBD blocks all signals for all other processes while it
is going socket IO, so that a partial IO will never be send to the server,
except when the connection is lost.
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/gnbd-kernel/src/gnbd.c.diff?cvsroot=cluster&only_with_tag=RHEL4&r1=1.6.2.2&r2=1.6.2.3
--- cluster/gnbd-kernel/src/gnbd.c 2005/05/09 23:05:17 1.6.2.2
+++ cluster/gnbd-kernel/src/gnbd.c 2006/11/09 21:22:40 1.6.2.3
@@ -289,7 +289,7 @@
* Send or receive packet.
*/
static int sock_xmit(struct socket *sock, int send, void *buf, int size,
- int msg_flags)
+ int msg_flags, int can_signal)
{
mm_segment_t oldfs;
int result;
@@ -300,13 +300,12 @@
oldfs = get_fs();
set_fs(get_ds());
- /* Allow interception of SIGKILL only
- * Don't allow other signals to interrupt the transmission */
spin_lock_irqsave(¤t->sighand->siglock, flags);
oldset = current->blocked;
sigfillset(¤t->blocked);
- sigdelsetmask(¤t->blocked, sigmask(SIGKILL) | sigmask(SIGTERM) |
- sigmask(SIGHUP));
+ if (can_signal)
+ sigdelsetmask(¤t->blocked, sigmask(SIGKILL) |
+ sigmask(SIGTERM) | sigmask(SIGHUP));
recalc_sigpending();
spin_unlock_irqrestore(¤t->sighand->siglock, flags);
@@ -328,7 +327,7 @@
else
result = sock_recvmsg(sock, &msg, size, 0);
- if (signal_pending(current)) {
+ if (can_signal && signal_pending(current)) {
siginfo_t info;
spin_lock_irqsave(¤t->sighand->siglock, flags);
printk(KERN_WARNING "gnbd (pid %d: %s) got signal %d\n",
@@ -358,21 +357,22 @@
}
static inline int sock_send_bvec(struct socket *sock, struct bio_vec *bvec,
- int flags)
+ int flags, int can_signal)
{
int result;
void *kaddr = kmap(bvec->bv_page);
result = sock_xmit(sock, 1, kaddr + bvec->bv_offset, bvec->bv_len,
- flags);
+ flags, can_signal);
kunmap(bvec->bv_page);
return result;
}
-#define gnbd_send_req(dev, req) __gnbd_send_req((dev), (dev)->sock, (req))
+#define gnbd_send_req(dev, req, can_sig) \
+__gnbd_send_req((dev), (dev)->sock, (req), (can_sig))
int __gnbd_send_req(struct gnbd_device *dev, struct socket *sock,
- struct request *req)
+ struct request *req, int can_signal)
{
int result, i, flags;
struct gnbd_request request;
@@ -399,7 +399,8 @@
(unsigned long long)req->sector << 9,
req->nr_sectors << 9);
result = sock_xmit(sock, 1, &request, sizeof(request),
- (gnbd_cmd(req) == GNBD_CMD_WRITE)? MSG_MORE: 0);
+ (gnbd_cmd(req) == GNBD_CMD_WRITE)? MSG_MORE: 0,
+ can_signal);
if (result < 0) {
printk(KERN_ERR "%s: Send control failed (result %d)\n",
dev->disk->disk_name, result);
@@ -421,7 +422,8 @@
dprintk(DBG_TX, "%s: request %p: sending %d bytes data\n",
dev->disk->disk_name, req,
bvec->bv_len);
- result = sock_send_bvec(sock, bvec, flags);
+ result = sock_send_bvec(sock, bvec, flags,
+ can_signal);
if (result < 0) {
printk(KERN_ERR "%s: Send data failed (result %d)\n",
dev->disk->disk_name,
@@ -459,7 +461,7 @@
int result;
void *kaddr = kmap(bvec->bv_page);
result = sock_xmit(sock, 0, kaddr + bvec->bv_offset, bvec->bv_len,
- MSG_WAITALL);
+ MSG_WAITALL, 1);
kunmap(bvec->bv_page);
return result;
}
@@ -495,7 +497,7 @@
BUG_ON(dev->magic != GNBD_MAGIC);
- while((result = sock_xmit(sock, 0, &reply,sizeof(reply), MSG_WAITALL)) > 0){
+ while((result = sock_xmit(sock, 0, &reply,sizeof(reply), MSG_WAITALL, 1)) > 0){
if (ntohl(reply.magic) == GNBD_KEEP_ALIVE_MAGIC)
/* FIXME -- I should reset the wait time here */
continue;
@@ -610,7 +612,7 @@
list_add(&req->queuelist, &dev->queue_head);
spin_unlock(&dev->queue_lock);
- err = gnbd_send_req(dev, req);
+ err = gnbd_send_req(dev, req, 0);
spin_lock_irq(q->queue_lock);
if (err)
@@ -642,7 +644,7 @@
printk("resending requests\n");
list_for_each(tmp, &dev->queue_head) {
req = list_entry(tmp, struct request, queuelist);
- err = __gnbd_send_req(dev, sock, req);
+ err = __gnbd_send_req(dev, sock, req, 1);
if (err){
printk("failed trying to resend request (%d)\n", err);
@@ -706,7 +708,7 @@
/* There is no one using the device, you can disconnect it */
if (dev->sock == NULL)
return -ENOTCONN;
- gnbd_send_req(dev, &shutdown_req);
+ gnbd_send_req(dev, &shutdown_req, 1);
return 0;
case GNBD_CLEAR_QUE:
if (down_interruptible(&dev->do_it_lock))
@@ -783,7 +785,7 @@
list_add(&ping_req.queuelist, &dev->queue_head);
}
spin_unlock(&dev->queue_lock);
- gnbd_send_req(dev, &ping_req); /* ignore the errors */
+ gnbd_send_req(dev, &ping_req, 1); /* ignore the errors */
return 0;
case GNBD_PRINT_DEBUG:
printk(KERN_INFO "%s: next = %p, prev = %p, head = %p\n",
^ permalink raw reply [flat|nested] 10+ messages in thread* [Cluster-devel] cluster/gnbd-kernel/src gnbd.c
@ 2006-08-08 21:04 bmarzins
0 siblings, 0 replies; 10+ messages in thread
From: bmarzins @ 2006-08-08 21:04 UTC (permalink / raw)
To: cluster-devel.redhat.com
CVSROOT: /cvs/cluster
Module name: cluster
Changes by: bmarzins at sourceware.org 2006-08-08 21:04:32
Modified files:
gnbd-kernel/src: gnbd.c
Log message:
pull devfs stuff out of gnbd.
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/gnbd-kernel/src/gnbd.c.diff?cvsroot=cluster&r1=1.13&r2=1.14
--- cluster/gnbd-kernel/src/gnbd.c 2006/06/02 19:58:49 1.13
+++ cluster/gnbd-kernel/src/gnbd.c 2006/08/08 21:04:32 1.14
@@ -30,7 +30,6 @@
#include <linux/buffer_head.h>
#include <linux/miscdevice.h>
#include <linux/moduleparam.h>
-#include <linux/devfs_fs_kernel.h>
#include <asm/uaccess.h>
#include <asm/types.h>
@@ -844,7 +843,6 @@
{
.minor = MISC_DYNAMIC_MINOR,
.name = "gnbd_ctl",
- .devfs_name = "gnbd_ctl",
.fops = &_gnbd_ctl_fops
};
@@ -925,7 +923,6 @@
printk(KERN_INFO "gnbd: registered device at major %d\n", major_nr);
dprintk(DBG_INIT, "gnbd: debugflags=0x%x\n", debugflags);
- devfs_mk_dir("gnbd_minor");
err = class_register(&gnbd_class);
if (err)
goto out_unregister;
@@ -981,7 +978,6 @@
disk->fops = &gnbd_fops;
disk->private_data = &gnbd_dev[i];
sprintf(disk->disk_name, "gnbd%d", i);
- sprintf(disk->devfs_name, "gnbd_minor/%d", i);
set_capacity(disk, 0);
add_disk(disk);
if(sysfs_create_link(&gnbd_dev[i].class_dev.kobj,
@@ -994,6 +990,7 @@
if (err)
goto out_unregister_class;
+ do_gettimeofday(&tv);
insmod_time = (uint64_t) tv.tv_sec * 1000000 + tv.tv_usec;
return 0;
@@ -1035,7 +1032,6 @@
kfree(gnbd_dev[i].server_name);
}
class_unregister(&gnbd_class);
- devfs_remove("gnbd");
unregister_blkdev(major_nr, "gnbd");
printk(KERN_INFO "gnbd: unregistered device at major %d\n", major_nr);
}
^ permalink raw reply [flat|nested] 10+ messages in thread* [Cluster-devel] cluster/gnbd-kernel/src gnbd.c
@ 2006-07-12 17:34 bmarzins
0 siblings, 0 replies; 10+ messages in thread
From: bmarzins @ 2006-07-12 17:34 UTC (permalink / raw)
To: cluster-devel.redhat.com
CVSROOT: /cvs/cluster
Module name: cluster
Branch: STABLE
Changes by: bmarzins at sourceware.org 2006-07-12 17:34:29
Modified files:
gnbd-kernel/src: gnbd.c
Log message:
changed form MODULE_PARAM to module_param
Patches:
http://sourceware.org/cgi-bin/cvsweb.cgi/cluster/gnbd-kernel/src/gnbd.c.diff?cvsroot=cluster&only_with_tag=STABLE&r1=1.6.6.1.2.3&r2=1.6.6.1.2.4
--- cluster/gnbd-kernel/src/gnbd.c 2006/02/13 20:34:17 1.6.6.1.2.3
+++ cluster/gnbd-kernel/src/gnbd.c 2006/07/12 17:34:29 1.6.6.1.2.4
@@ -29,7 +29,7 @@
#include <linux/in.h>
#include <linux/buffer_head.h>
#include <linux/miscdevice.h>
-
+#include <linux/moduleparam.h>
#include <linux/devfs_fs_kernel.h>
#include <asm/uaccess.h>
@@ -1048,6 +1048,6 @@
MODULE_LICENSE("GPL");
#ifndef NDEBUG
-MODULE_PARM(debugflags, "i");
+module_param(debugflags, uint, 0644);
MODULE_PARM_DESC(debugflags, "flags for controlling debug output");
#endif
^ permalink raw reply [flat|nested] 10+ messages in thread
end of thread, other threads:[~2008-01-28 6:13 UTC | newest]
Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2006-12-18 18:17 [Cluster-devel] cluster/gnbd-kernel/src gnbd.c bmarzins
-- strict thread matches above, loose matches on Subject: below --
2008-01-28 6:13 fabbione
2007-06-19 22:34 bmarzins
2007-06-19 22:31 bmarzins
2007-01-05 23:01 bmarzins
2006-12-18 18:18 bmarzins
2006-12-18 18:15 bmarzins
2006-11-09 21:22 bmarzins
2006-08-08 21:04 bmarzins
2006-07-12 17:34 bmarzins
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).