Jeff's point looks correct. Also note when you fix this up - the local variable for cifs_sb from the previous patch (which caused a build warning for unused variable) needs to be readded back to this patch. On Tue, Nov 2, 2010 at 10:19 AM, Jeff Layton <jlayton@xxxxxxxxxx> wrote: > On Tue, 2 Nov 2010 12:01:17 +0300 > Pavel Shilovsky <piastryyy@xxxxxxxxx> wrote: > >> On strict cache mode when we close the last file handle of the inode we >> should invalidate this inode to prevent data coherency problem when we >> open it again but it has been modified by other clients. >> >> Signed-off-by: Pavel Shilovsky <piastryyy@xxxxxxxxx> >> --- >> fs/cifs/cifs_fs_sb.h | 1 + >> fs/cifs/file.c | 3 +++ >> 2 files changed, 4 insertions(+), 0 deletions(-) >> >> diff --git a/fs/cifs/cifs_fs_sb.h b/fs/cifs/cifs_fs_sb.h >> index 525ba59..3690c50 100644 >> --- a/fs/cifs/cifs_fs_sb.h >> +++ b/fs/cifs/cifs_fs_sb.h >> @@ -40,6 +40,7 @@ >> #define CIFS_MOUNT_FSCACHE 0x8000 /* local caching enabled */ >> #define CIFS_MOUNT_MF_SYMLINKS 0x10000 /* Minshall+French Symlinks enabled */ >> #define CIFS_MOUNT_MULTIUSER 0x20000 /* multiuser mount */ >> +#define CIFS_MOUNT_STRICT_IO 0x40000 /* strict cache mode */ >> >> struct cifs_sb_info { >> struct radix_tree_root tlink_tree; >> diff --git a/fs/cifs/file.c b/fs/cifs/file.c >> index a566f15..3970e68 100644 >> --- a/fs/cifs/file.c >> +++ b/fs/cifs/file.c >> @@ -284,6 +284,9 @@ void cifsFileInfo_put(struct cifsFileInfo *cifs_file) >> } >> spin_unlock(&cifs_file_list_lock); >> >> + if (cifs_sb->mnt_cifs_flags & CIFS_MOUNT_STRICT_IO) >> + invalidate_remote_inode(inode); >> + >> if (!tcon->need_reconnect && !cifs_file->invalidHandle) { >> int xid, rc; >> > > Suppose I have this file open twice and have r/o oplocks on both > filehandles. I close one of those file descriptors and the cache is > invalidated. Is that really what we want here? > > -- > Jeff Layton <jlayton@xxxxxxxxxx> > -- > To unsubscribe from this list: send the line "unsubscribe linux-cifs" in > the body of a message to majordomo@xxxxxxxxxxxxxxx > More majordomo info at http://vger.kernel.org/majordomo-info.html > -- Thanks, Steve -- To unsubscribe from this list: send the line "unsubscribe linux-cifs" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html