[CIFS] Fix SMB uid in NTLMSSP authenticate request
[safe/jmp/linux-2.6] / fs / cifs / cifsfs.c
index 974c8f0..0d6d8b5 100644 (file)
@@ -66,9 +66,6 @@ unsigned int sign_CIFS_PDUs = 1;
 extern struct task_struct *oplockThread; /* remove sparse warning */
 struct task_struct *oplockThread = NULL;
 /* extern struct task_struct * dnotifyThread; remove sparse warning */
-#ifdef CONFIG_CIFS_EXPERIMENTAL
-static struct task_struct *dnotifyThread = NULL;
-#endif
 static const struct super_operations cifs_super_ops;
 unsigned int CIFSMaxBufSize = CIFS_MAX_MSGSIZE;
 module_param(CIFSMaxBufSize, int, 0);
@@ -316,6 +313,7 @@ cifs_alloc_inode(struct super_block *sb)
        cifs_inode->clientCanCacheAll = false;
        cifs_inode->delete_pending = false;
        cifs_inode->vfs_inode.i_blkbits = 14;  /* 2**14 = CIFS_MAX_MSGSIZE */
+       cifs_inode->server_eof = 0;
 
        /* Can not set i_flags here - they get immediately overwritten
           to zero by the VFS */
@@ -361,12 +359,12 @@ cifs_show_options(struct seq_file *s, struct vfsmount *m)
                                        switch (server->addr.sockAddr6.
                                                sin6_family) {
                                        case AF_INET6:
-                                               seq_printf(s, NIP6_FMT,
-                                                          NIP6(server->addr.sockAddr6.sin6_addr));
+                                               seq_printf(s, "%pI6",
+                                                          &server->addr.sockAddr6.sin6_addr);
                                                break;
                                        case AF_INET:
-                                               seq_printf(s, NIPQUAD_FMT,
-                                                          NIPQUAD(server->addr.sockAddr.sin_addr.s_addr));
+                                               seq_printf(s, "%pI4",
+                                                          &server->addr.sockAddr.sin_addr.s_addr);
                                                break;
                                        }
                                }
@@ -606,7 +604,8 @@ cifs_get_sb(struct file_system_type *fs_type,
                return rc;
        }
        sb->s_flags |= MS_ACTIVE;
-       return simple_set_mnt(mnt, sb);
+       simple_set_mnt(mnt, sb);
+       return 0;
 }
 
 static ssize_t cifs_file_aio_write(struct kiocb *iocb, const struct iovec *iov,
@@ -747,7 +746,6 @@ const struct file_operations cifs_file_ops = {
 #endif /* CONFIG_CIFS_POSIX */
 
 #ifdef CONFIG_CIFS_EXPERIMENTAL
-       .dir_notify = cifs_dir_notify,
        .setlease = cifs_setlease,
 #endif /* CONFIG_CIFS_EXPERIMENTAL */
 };
@@ -768,7 +766,6 @@ const struct file_operations cifs_file_direct_ops = {
 #endif /* CONFIG_CIFS_POSIX */
        .llseek = cifs_llseek,
 #ifdef CONFIG_CIFS_EXPERIMENTAL
-       .dir_notify = cifs_dir_notify,
        .setlease = cifs_setlease,
 #endif /* CONFIG_CIFS_EXPERIMENTAL */
 };
@@ -789,7 +786,6 @@ const struct file_operations cifs_file_nobrl_ops = {
 #endif /* CONFIG_CIFS_POSIX */
 
 #ifdef CONFIG_CIFS_EXPERIMENTAL
-       .dir_notify = cifs_dir_notify,
        .setlease = cifs_setlease,
 #endif /* CONFIG_CIFS_EXPERIMENTAL */
 };
@@ -809,7 +805,6 @@ const struct file_operations cifs_file_direct_nobrl_ops = {
 #endif /* CONFIG_CIFS_POSIX */
        .llseek = cifs_llseek,
 #ifdef CONFIG_CIFS_EXPERIMENTAL
-       .dir_notify = cifs_dir_notify,
        .setlease = cifs_setlease,
 #endif /* CONFIG_CIFS_EXPERIMENTAL */
 };
@@ -818,9 +813,6 @@ const struct file_operations cifs_dir_ops = {
        .readdir = cifs_readdir,
        .release = cifs_closedir,
        .read    = generic_read_dir,
-#ifdef CONFIG_CIFS_EXPERIMENTAL
-       .dir_notify = cifs_dir_notify,
-#endif /* CONFIG_CIFS_EXPERIMENTAL */
        .unlocked_ioctl  = cifs_ioctl,
        .llseek = generic_file_llseek,
 };
@@ -1046,34 +1038,6 @@ static int cifs_oplock_thread(void *dummyarg)
        return 0;
 }
 
-#ifdef CONFIG_CIFS_EXPERIMENTAL
-static int cifs_dnotify_thread(void *dummyarg)
-{
-       struct list_head *tmp;
-       struct TCP_Server_Info *server;
-
-       do {
-               if (try_to_freeze())
-                       continue;
-               set_current_state(TASK_INTERRUPTIBLE);
-               schedule_timeout(15*HZ);
-               /* check if any stuck requests that need
-                  to be woken up and wakeq so the
-                  thread can wake up and error out */
-               read_lock(&cifs_tcp_ses_lock);
-               list_for_each(tmp, &cifs_tcp_ses_list) {
-                       server = list_entry(tmp, struct TCP_Server_Info,
-                                        tcp_ses_list);
-                       if (atomic_read(&server->inFlight))
-                               wake_up_all(&server->response_q);
-               }
-               read_unlock(&cifs_tcp_ses_lock);
-       } while (!kthread_should_stop());
-
-       return 0;
-}
-#endif
-
 static int __init
 init_cifs(void)
 {
@@ -1150,21 +1114,8 @@ init_cifs(void)
                goto out_unregister_dfs_key_type;
        }
 
-#ifdef CONFIG_CIFS_EXPERIMENTAL
-       dnotifyThread = kthread_run(cifs_dnotify_thread, NULL, "cifsdnotifyd");
-       if (IS_ERR(dnotifyThread)) {
-               rc = PTR_ERR(dnotifyThread);
-               cERROR(1, ("error %d create dnotify thread", rc));
-               goto out_stop_oplock_thread;
-       }
-#endif
-
        return 0;
 
-#ifdef CONFIG_CIFS_EXPERIMENTAL
- out_stop_oplock_thread:
-#endif
-       kthread_stop(oplockThread);
  out_unregister_dfs_key_type:
 #ifdef CONFIG_CIFS_DFS_UPCALL
        unregister_key_type(&key_type_dns_resolver);
@@ -1202,9 +1153,6 @@ exit_cifs(void)
        cifs_destroy_inodecache();
        cifs_destroy_mids();
        cifs_destroy_request_bufs();
-#ifdef CONFIG_CIFS_EXPERIMENTAL
-       kthread_stop(dnotifyThread);
-#endif
        kthread_stop(oplockThread);
 }