diff options
Diffstat (limited to 'fs/cifs/file.c')
| -rw-r--r-- | fs/cifs/file.c | 7 | 
1 files changed, 5 insertions, 2 deletions
diff --git a/fs/cifs/file.c b/fs/cifs/file.c index ead1a3bb025..6449e1aae62 100644 --- a/fs/cifs/file.c +++ b/fs/cifs/file.c @@ -493,7 +493,7 @@ int cifs_close(struct inode *inode, struct file *file)  		if (pTcon) {  			/* no sense reconnecting to close a file that is  			   already closed */ -			if (pTcon->tidStatus != CifsNeedReconnect) { +			if (!pTcon->need_reconnect) {  				timeout = 2;  				while ((atomic_read(&pSMBFile->wrtPending) != 0)  					&& (timeout <= 2048)) { @@ -1404,7 +1404,10 @@ retry:  			if ((wbc->nr_to_write -= n_iov) <= 0)  				done = 1;  			index = next; -		} +		} else +			/* Need to re-find the pages we skipped */ +			index = pvec.pages[0]->index + 1; +  		pagevec_release(&pvec);  	}  	if (!scanned && !done) {  |