diff options
Diffstat (limited to '')
-rw-r--r-- | drivers/staging/lustre/lustre/lclient/lcommon_cl.c | 37 |
1 files changed, 21 insertions, 16 deletions
diff --git a/drivers/staging/lustre/lustre/lclient/lcommon_cl.c b/drivers/staging/lustre/lustre/lclient/lcommon_cl.c index 1b0c216bc568..94f759d0b5ad 100644 --- a/drivers/staging/lustre/lustre/lclient/lcommon_cl.c +++ b/drivers/staging/lustre/lustre/lclient/lcommon_cl.c @@ -41,7 +41,7 @@ #define DEBUG_SUBSYSTEM S_LLITE -# include <linux/libcfs/libcfs.h> +#include "../../include/linux/libcfs/libcfs.h" # include <linux/fs.h> # include <linux/sched.h> # include <linux/mm.h> @@ -50,16 +50,16 @@ # include <linux/pagemap.h> # include <linux/rbtree.h> -#include <obd.h> -#include <obd_support.h> -#include <lustre_fid.h> -#include <lustre_lite.h> -#include <lustre_dlm.h> -#include <lustre_ver.h> -#include <lustre_mdc.h> -#include <cl_object.h> +#include "../include/obd.h" +#include "../include/obd_support.h" +#include "../include/lustre_fid.h" +#include "../include/lustre_lite.h" +#include "../include/lustre_dlm.h" +#include "../include/lustre_ver.h" +#include "../include/lustre_mdc.h" +#include "../include/cl_object.h" -#include <lclient.h> +#include "../include/lclient.h" #include "../llite/llite_internal.h" @@ -126,6 +126,7 @@ void ccc_key_fini(const struct lu_context *ctx, struct lu_context_key *key, void *data) { struct ccc_thread_info *info = data; + OBD_SLAB_FREE_PTR(info, ccc_thread_kmem); } @@ -144,6 +145,7 @@ void ccc_session_key_fini(const struct lu_context *ctx, struct lu_context_key *key, void *data) { struct ccc_session *session = data; + OBD_SLAB_FREE_PTR(session, ccc_session_kmem); } @@ -264,7 +266,7 @@ int ccc_req_init(const struct lu_env *env, struct cl_device *dev, * fails. Access to this environment is serialized by ccc_inode_fini_guard * mutex. */ -static struct lu_env *ccc_inode_fini_env = NULL; +static struct lu_env *ccc_inode_fini_env; /** * A mutex serializing calls to slp_inode_fini() under extreme memory @@ -572,6 +574,7 @@ void ccc_lock_delete(const struct lu_env *env, void ccc_lock_fini(const struct lu_env *env, struct cl_lock_slice *slice) { struct ccc_lock *clk = cl2ccc_lock(slice); + OBD_SLAB_FREE_PTR(clk, ccc_lock_kmem); } @@ -733,6 +736,7 @@ int ccc_io_one_lock(const struct lu_env *env, struct cl_io *io, loff_t start, loff_t end) { struct cl_object *obj = io->ci_obj; + return ccc_io_one_lock_index(env, io, enqflags, mode, cl_index(obj, start), cl_index(obj, end)); } @@ -817,11 +821,12 @@ int ccc_prep_size(const struct lu_env *env, struct cl_object *obj, * linux-2.6.18-128.1.1 miss to do that. * --bug 17336 */ loff_t size = cl_isize_read(inode); - unsigned long cur_index = start >> PAGE_CACHE_SHIFT; + loff_t cur_index = start >> PAGE_CACHE_SHIFT; + loff_t size_index = ((size - 1) >> PAGE_CACHE_SHIFT); if ((size == 0 && cur_index != 0) || - (((size - 1) >> PAGE_CACHE_SHIFT) < cur_index)) - *exceed = 1; + size_index < cur_index) + *exceed = 1; } return result; } else { @@ -838,7 +843,7 @@ int ccc_prep_size(const struct lu_env *env, struct cl_object *obj, if (cl_isize_read(inode) < kms) { cl_isize_write_nolock(inode, kms); CDEBUG(D_VFSTRACE, - DFID" updating i_size "LPU64"\n", + DFID" updating i_size %llu\n", PFID(lu_object_fid(&obj->co_lu)), (__u64)cl_isize_read(inode)); @@ -1269,7 +1274,7 @@ struct lov_stripe_md *ccc_inode_lsm_get(struct inode *inode) return lov_lsm_get(cl_i2info(inode)->lli_clob); } -void inline ccc_inode_lsm_put(struct inode *inode, struct lov_stripe_md *lsm) +inline void ccc_inode_lsm_put(struct inode *inode, struct lov_stripe_md *lsm) { lov_lsm_put(cl_i2info(inode)->lli_clob, lsm); } |