Merge branch 'for_linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jwessel...
[firefly-linux-kernel-4.4.55.git] / fs / cifs / cifsfs.c
index bc4b12ca537bfaf1a6556cf0b1df5a4bc8af25ac..212e5629cc1d01880263aaa6f0b12ef6a1a46291 100644 (file)
@@ -86,24 +86,6 @@ extern mempool_t *cifs_sm_req_poolp;
 extern mempool_t *cifs_req_poolp;
 extern mempool_t *cifs_mid_poolp;
 
-void
-cifs_sb_active(struct super_block *sb)
-{
-       struct cifs_sb_info *server = CIFS_SB(sb);
-
-       if (atomic_inc_return(&server->active) == 1)
-               atomic_inc(&sb->s_active);
-}
-
-void
-cifs_sb_deactive(struct super_block *sb)
-{
-       struct cifs_sb_info *server = CIFS_SB(sb);
-
-       if (atomic_dec_and_test(&server->active))
-               deactivate_super(sb);
-}
-
 static int
 cifs_read_super(struct super_block *sb)
 {
@@ -224,7 +206,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 +221,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 +686,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;