فهرست منبع

[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(-)
Steve French 19 سال پیش
والد
کامیت
16abbecdad
3فایلهای تغییر یافته به همراه8 افزوده شده و 1 حذف شده
  1. 2 1
      fs/cifs/CHANGES
  2. 4 0
      fs/cifs/cifsfs.c
  3. 2 0
      fs/cifs/connect.c

+ 2 - 1
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

+ 4 - 0
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));

+ 2 - 0
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) {