Whamcloud - gitweb
LU-15217 pcc: disable PCC for encrypted files
[fs/lustre-release.git] / lustre / llite / file.c
index 0021c76..c87deda 100644 (file)
@@ -758,10 +758,6 @@ static int ll_local_open(struct file *file, struct lookup_intent *it,
        /* turn off the kernel's read-ahead */
        file->f_ra.ra_pages = 0;
 
-       /* ll_cl_context initialize */
-       rwlock_init(&fd->fd_lock);
-       INIT_LIST_HEAD(&fd->fd_lccs);
-
        RETURN(0);
 }
 
@@ -1706,9 +1702,9 @@ restart:
                        range_locked = true;
                }
 
-               ll_cl_add(file, env, io, LCC_RW);
+               ll_cl_add(inode, env, io, LCC_RW);
                rc = cl_io_loop(env, io);
-               ll_cl_remove(file, env);
+               ll_cl_remove(inode, env);
 
                if (range_locked && !is_parallel_dio) {
                        CDEBUG(D_VFSTRACE, "Range unlock "RL_FMT"\n",
@@ -2025,8 +2021,6 @@ static ssize_t ll_do_tiny_write(struct kiocb *iocb, struct iov_iter *iter)
 
        if (result > 0) {
                ll_heat_add(inode, CIT_WRITE, result);
-               ll_stats_ops_tally(ll_i2sbi(inode), LPROC_LL_WRITE_BYTES,
-                                  result);
                set_bit(LLIF_DATA_MODIFIED, &ll_i2info(inode)->lli_flags);
        }
 
@@ -2756,7 +2750,7 @@ int ll_fid2path(struct inode *inode, void __user *arg)
        ENTRY;
 
        if (!capable(CAP_DAC_READ_SEARCH) &&
-           !(ll_i2sbi(inode)->ll_flags & LL_SBI_USER_FID2PATH))
+           !test_bit(LL_SBI_USER_FID2PATH, ll_i2sbi(inode)->ll_flags))
                RETURN(-EPERM);
 
        /* Only need to get the buflen */
@@ -3686,6 +3680,9 @@ static long ll_file_unlock_lease(struct file *file, struct ll_ioc_lease *ioc,
                if (ioc->lil_count != 1)
                        RETURN(-EINVAL);
 
+               if (IS_ENCRYPTED(inode))
+                       RETURN(-EOPNOTSUPP);
+
                arg += sizeof(*ioc);
                if (copy_from_user(&param.pa_archive_id, (void __user *)arg,
                                   sizeof(__u32)))
@@ -5154,7 +5151,10 @@ static int ll_merge_md_attr(struct inode *inode)
        if (rc != 0)
                RETURN(rc);
 
+       spin_lock(&inode->i_lock);
        set_nlink(inode, attr.cat_nlink);
+       spin_unlock(&inode->i_lock);
+
        inode->i_blocks = attr.cat_blocks;
        i_size_write(inode, attr.cat_size);
 
@@ -5511,7 +5511,7 @@ int ll_inode_permission(struct inode *inode, int mask)
        squash = &sbi->ll_squash;
        if (unlikely(squash->rsi_uid != 0 &&
                     uid_eq(current_fsuid(), GLOBAL_ROOT_UID) &&
-                    !(sbi->ll_flags & LL_SBI_NOROOTSQUASH))) {
+                    !test_bit(LL_SBI_NOROOTSQUASH, sbi->ll_flags))) {
                        squash_id = true;
        }
        if (squash_id) {
@@ -5661,9 +5661,9 @@ const struct file_operations *ll_select_file_operations(struct ll_sb_info *sbi)
 {
        const struct file_operations *fops = &ll_file_operations_noflock;
 
-       if (sbi->ll_flags & LL_SBI_FLOCK)
+       if (test_bit(LL_SBI_FLOCK, sbi->ll_flags))
                fops = &ll_file_operations_flock;
-       else if (sbi->ll_flags & LL_SBI_LOCALFLOCK)
+       else if (test_bit(LL_SBI_LOCALFLOCK, sbi->ll_flags))
                fops = &ll_file_operations;
 
        return fops;
@@ -5951,7 +5951,8 @@ int ll_layout_refresh(struct inode *inode, __u32 *gen)
        ENTRY;
 
        *gen = ll_layout_version_get(lli);
-       if (!(sbi->ll_flags & LL_SBI_LAYOUT_LOCK) || *gen != CL_LAYOUT_GEN_NONE)
+       if (!test_bit(LL_SBI_LAYOUT_LOCK, sbi->ll_flags) ||
+           *gen != CL_LAYOUT_GEN_NONE)
                RETURN(0);
 
        /* sanity checks */