X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Fllite%2Fvvp_object.c;h=cd2a05be452866ed54bc344e707a5facb7ae2ffc;hb=1224f40d2e5be236b76b4013e4d926b77a56a3da;hp=c9c4366bf721cc4a1414ee7fd9729a2b8436c999;hpb=bd2cd32261669849b901315f296e43f14dabf469;p=fs%2Flustre-release.git diff --git a/lustre/llite/vvp_object.c b/lustre/llite/vvp_object.c index c9c4366..cd2a05b 100644 --- a/lustre/llite/vvp_object.c +++ b/lustre/llite/vvp_object.c @@ -44,8 +44,7 @@ #include #include -#include - +#include "llite_internal.h" #include "vvp_internal.h" /***************************************************************************** @@ -63,7 +62,8 @@ static int vvp_object_print(const struct lu_env *env, void *cookie, (*p)(env, cookie, "(%s %d %d) inode: %p ", list_empty(&obj->cob_pending_list) ? "-" : "+", - obj->cob_transient_pages, atomic_read(&obj->cob_mmap_cnt), + atomic_read(&obj->cob_transient_pages), + atomic_read(&obj->cob_mmap_cnt), inode); if (inode) { lli = ll_i2info(inode); @@ -113,7 +113,7 @@ static int vvp_attr_set(const struct lu_env *env, struct cl_object *obj, if (valid & CAT_CTIME) LTIME_S(inode->i_ctime) = attr->cat_ctime; if (0 && valid & CAT_SIZE) - cl_isize_write_nolock(inode, attr->cat_size); + i_size_write(inode, attr->cat_size); /* not currently necessary */ if (0 && valid & (CAT_UID|CAT_GID|CAT_SIZE)) mark_inode_dirty(inode); @@ -151,11 +151,15 @@ static int vvp_prune(const struct lu_env *env, struct cl_object *obj) int rc; ENTRY; - rc = cl_sync_file_range(inode, 0, OBD_OBJECT_EOF, CL_FSYNC_ALL, 1); - if (rc == 0) - truncate_inode_pages(inode->i_mapping, 0); + rc = cl_sync_file_range(inode, 0, OBD_OBJECT_EOF, CL_FSYNC_LOCAL, 1); + if (rc < 0) { + CDEBUG(D_VFSTRACE, DFID ": writeback failed: %d\n", + PFID(lu_object_fid(&obj->co_lu)), rc); + RETURN(rc); + } - RETURN(rc); + truncate_inode_pages(inode->i_mapping, 0); + RETURN(0); } static const struct cl_object_operations vvp_ops = { @@ -177,7 +181,7 @@ static const struct lu_object_operations vvp_lu_obj_ops = { struct ccc_object *cl_inode2ccc(struct inode *inode) { - struct cl_inode_info *lli = cl_i2info(inode); + struct ll_inode_info *lli = ll_i2info(inode); struct cl_object *obj = lli->lli_clob; struct lu_object *lu;