summaryrefslogtreecommitdiffstats
path: root/fs/cifs/cifsfs.c
diff options
context:
space:
mode:
authorJeff Layton2011-01-07 17:30:27 +0100
committerSteve French2011-01-10 00:43:00 +0100
commit20054bd65703f7504a9daceabc2a060828fde36c (patch)
treea15151a2d3a1d8abe1c72701ceb3e9f7051fe6ea /fs/cifs/cifsfs.c
parentcifs: switch cifs_open and cifs_create to use CIFSSMBUnixSetFileInfo (diff)
downloadkernel-qcow2-linux-20054bd65703f7504a9daceabc2a060828fde36c.tar.gz
kernel-qcow2-linux-20054bd65703f7504a9daceabc2a060828fde36c.tar.xz
kernel-qcow2-linux-20054bd65703f7504a9daceabc2a060828fde36c.zip
cifs: use CreationTime like an i_generation field
Reduce false inode collisions by using the CreationTime like an i_generation field. This way, even if the server ends up reusing a uniqueid after a delete/create cycle, we can avoid matching the inode incorrectly. Signed-off-by: Jeff Layton <jlayton@redhat.com> Signed-off-by: Steve French <sfrench@us.ibm.com>
Diffstat (limited to 'fs/cifs/cifsfs.c')
-rw-r--r--fs/cifs/cifsfs.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/fs/cifs/cifsfs.c b/fs/cifs/cifsfs.c
index 5abfedaa5e78..5e7075d5f139 100644
--- a/fs/cifs/cifsfs.c
+++ b/fs/cifs/cifsfs.c
@@ -329,6 +329,8 @@ cifs_alloc_inode(struct super_block *sb)
cifs_inode->invalid_mapping = false;
cifs_inode->vfs_inode.i_blkbits = 14; /* 2**14 = CIFS_MAX_MSGSIZE */
cifs_inode->server_eof = 0;
+ cifs_inode->uniqueid = 0;
+ cifs_inode->createtime = 0;
/* Can not set i_flags here - they get immediately overwritten
to zero by the VFS */