Marc,
Thanks for finding this. fs/ncpfs/sock.c is likewise broken.
The following patch compiles, but I haven't tested it.
--- linux-2.4.20/fs/smbfs/sock.c Thu Nov 28 15:53:15 2002
+++ sys_epoll/fs/smbfs/sock.c Fri Dec 13 14:50:15 2002
@@ -314,16 +314,18 @@
smb_receive_poll(struct smb_sb_info *server)
{
struct file *file = server->sock_file;
- poll_table wait_table;
+ struct poll_wqueues wait_table;
+ poll_table *wait;
int result = 0;
int timeout = server->mnt->timeo * HZ;
int mask;
for (;;) {
poll_initwait(&wait_table);
+ wait = &wait_table.pt;
set_current_state(TASK_INTERRUPTIBLE);
- mask = file->f_op->poll(file, &wait_table);
+ mask = file->f_op->poll(file, wait);
if (mask & POLLIN) {
poll_freewait(&wait_table);
current->state = TASK_RUNNING;
--- linux-2.4.20/fs/ncpfs/sock.c Sat Jan 20 08:51:51 2001
+++ sys_epoll/fs/ncpfs/sock.c Fri Dec 13 16:59:07 2002
@@ -86,7 +86,8 @@
struct socket *sock;
int result;
char *start = server->packet;
- poll_table wait_table;
+ struct poll_wqueues wait_table;
+ poll_table *wait;
int init_timeout, max_timeout;
int timeout;
int retrans;
@@ -136,11 +137,12 @@
}
re_select:
poll_initwait(&wait_table);
+ wait = &wait_table.pt;
/* mb() is not necessary because ->poll() will serialize
instructions adding the wait_table waitqueues in the
waitqueue-head before going to calculate the mask-retval. */
__set_current_state(TASK_INTERRUPTIBLE);
- if (!(sock->ops->poll(file, sock, &wait_table) & POLLIN)) {
+ if (!(sock->ops->poll(file, sock, wait) & POLLIN)) {
int timed_out;
if (timeout > max_timeout) {
/* JEJB/JSP 2/7/94
@@ -261,7 +263,8 @@
}
static int do_tcp_rcv(struct ncp_server *server, void *buffer, size_t len) {
- poll_table wait_table;
+ struct poll_wqueues wait_table;
+ poll_table *wait;
struct file *file;
struct socket *sock;
int init_timeout;
@@ -281,11 +284,12 @@
while (len) {
poll_initwait(&wait_table);
+ wait = &wait_table.pt;
/* mb() is not necessary because ->poll() will serialize
instructions adding the wait_table waitqueues in the
waitqueue-head before going to calculate the mask-retval. */
__set_current_state(TASK_INTERRUPTIBLE);
- if (!(sock->ops->poll(file, sock, &wait_table) & POLLIN)) {
+ if (!(sock->ops->poll(file, sock, wait) & POLLIN)) {
init_timeout = schedule_timeout(init_timeout);
poll_freewait(&wait_table);
current->state = TASK_RUNNING;
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/