patch-2.4.18 linux/fs/smbfs/file.c
Next file: linux/fs/smbfs/getopt.c
Previous file: linux/fs/smbfs/ChangeLog
Back to the patch index
Back to the overall index
- Lines: 32
- Date:
Mon Jan 14 18:10:06 2002
- Orig file:
linux.orig/fs/smbfs/file.c
- Orig date:
Mon Feb 18 20:18:40 2002
diff -Naur -X /home/marcelo/lib/dontdiff linux.orig/fs/smbfs/file.c linux/fs/smbfs/file.c
@@ -270,7 +270,6 @@
static int smb_prepare_write(struct file *file, struct page *page,
unsigned offset, unsigned to)
{
- kmap(page);
return 0;
}
@@ -283,7 +282,6 @@
lock_kernel();
status = smb_updatepage(file, page, offset, to-offset);
unlock_kernel();
- kunmap(page);
return status;
}
@@ -349,8 +347,14 @@
smb_file_release(struct inode *inode, struct file * file)
{
lock_kernel();
- if (!--inode->u.smbfs_i.openers)
+ if (!--inode->u.smbfs_i.openers) {
+ /* We must flush any dirty pages now as we won't be able to
+ write anything after close. mmap can trigger this.
+ "openers" should perhaps include mmap'ers ... */
+ filemap_fdatasync(inode->i_mapping);
+ filemap_fdatawait(inode->i_mapping);
smb_close(inode);
+ }
unlock_kernel();
return 0;
}
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)