diff options
author | Steve French <sfrench@us.ibm.com> | 2005-08-30 13:10:14 -0700 |
---|---|---|
committer | Steve French <sfrench@us.ibm.com> | 2005-08-30 13:10:14 -0700 |
commit | 16abbecdad3367c76c12537450eba0d86943fe2c (patch) | |
tree | 4e15d2ce6e7ab84587e29c3cdbfed94d25ae5d9f | |
parent | 2016ef789a9ded2e169ad1c028ae3deb5302571f (diff) | |
download | talos-obmc-linux-16abbecdad3367c76c12537450eba0d86943fe2c.tar.gz talos-obmc-linux-16abbecdad3367c76c12537450eba0d86943fe2c.zip |
[CIFS] Add support for suspend
cifsd had been preventing software suspend from completing.
Signed-off-by: pavel@suse.de
Signed-off-by: Steve French <sfrench@us.ibm.com> lightly modified
---
fs/cifs/CHANGES | 3 ++-
fs/cifs/cifsfs.c | 4 ++++
fs/cifs/connect.c | 2 ++
3 files changed, 8 insertions(+), 1 deletions(-)
-rw-r--r-- | fs/cifs/CHANGES | 3 | ||||
-rw-r--r-- | fs/cifs/cifsfs.c | 4 | ||||
-rw-r--r-- | fs/cifs/connect.c | 2 |
3 files changed, 8 insertions, 1 deletions
diff --git a/fs/cifs/CHANGES b/fs/cifs/CHANGES index 340b4ffb3493..6c73f020ef40 100644 --- a/fs/cifs/CHANGES +++ b/fs/cifs/CHANGES @@ -2,7 +2,8 @@ Version 1.36 ------------ Add support for mounting to older pre-CIFS servers such as Windows9x and ME. For these older servers, add option for passing netbios name of server in -on mount (servernetbiosname). +on mount (servernetbiosname). Add suspend support for power management, to +avoid cifsd thread preventing software suspend from working. Add mount option for disabling the default behavior of sending byte range lock requests to the server (necessary for certain applications which break with mandatory lock behavior such as Evolution), and also mount option for diff --git a/fs/cifs/cifsfs.c b/fs/cifs/cifsfs.c index d77abe236a67..43fb2aafa528 100644 --- a/fs/cifs/cifsfs.c +++ b/fs/cifs/cifsfs.c @@ -784,6 +784,8 @@ static int cifs_oplock_thread(void * dummyarg) oplockThread = current; do { + if(try_to_freeze()) + continue; set_current_state(TASK_INTERRUPTIBLE); schedule_timeout(1*HZ); @@ -848,6 +850,8 @@ static int cifs_dnotify_thread(void * dummyarg) dnotifyThread = current; do { + if(try_to_freeze()) + continue; set_current_state(TASK_INTERRUPTIBLE); schedule_timeout(39*HZ); } while(!signal_pending(current)); diff --git a/fs/cifs/connect.c b/fs/cifs/connect.c index c75bae1242dc..134195cc4073 100644 --- a/fs/cifs/connect.c +++ b/fs/cifs/connect.c @@ -355,6 +355,8 @@ cifs_demultiplex_thread(struct TCP_Server_Info *server) } while (server->tcpStatus != CifsExiting) { + if(try_to_freeze()) + continue; if (bigbuf == NULL) { bigbuf = cifs_buf_get(); if(bigbuf == NULL) { |