]> git.karo-electronics.de Git - karo-tx-linux.git/blobdiff - fs/cifs/cifsfs.c
Merge git://git.kernel.org/pub/scm/linux/kernel/git/davem/net
[karo-tx-linux.git] / fs / cifs / cifsfs.c
index bc4b12ca537bfaf1a6556cf0b1df5a4bc8af25ac..865517470967de7dd14a1ad782c32195424f51c0 100644 (file)
@@ -224,7 +224,7 @@ cifs_statfs(struct dentry *dentry, struct kstatfs *buf)
        return 0;
 }
 
-static int cifs_permission(struct inode *inode, int mask, unsigned int flags)
+static int cifs_permission(struct inode *inode, int mask)
 {
        struct cifs_sb_info *cifs_sb;
 
@@ -239,7 +239,7 @@ static int cifs_permission(struct inode *inode, int mask, unsigned int flags)
                on the client (above and beyond ACL on servers) for
                servers which do not support setting and viewing mode bits,
                so allowing client to check permissions is useful */
-               return generic_permission(inode, mask, flags, NULL);
+               return generic_permission(inode, mask);
 }
 
 static struct kmem_cache *cifs_inode_cachep;
@@ -704,8 +704,11 @@ static ssize_t cifs_file_aio_write(struct kiocb *iocb, const struct iovec *iov,
 
 static loff_t cifs_llseek(struct file *file, loff_t offset, int origin)
 {
-       /* origin == SEEK_END => we must revalidate the cached file length */
-       if (origin == SEEK_END) {
+       /*
+        * origin == SEEK_END || SEEK_DATA || SEEK_HOLE => we must revalidate
+        * the cached file length
+        */
+       if (origin != SEEK_SET || origin != SEEK_CUR) {
                int rc;
                struct inode *inode = file->f_path.dentry->d_inode;