/* not for stat, change it later */
int lli_st_flags;
unsigned long lli_st_generation;
- /* the most recent attributes from mds, it is used for timestampts
+ /* the most recent attributes from mds, it is used for timestamps
* only so far */
struct ost_lvb lli_lvb;
};
lov_stripe_lock(lli->lli_smd);
inode_init_lvb(inode, &lvb);
- /* merge timestamps the most resently obtained from mds with
+ /* merge timestamps the most recently obtained from mds with
timestamps obtained from osts */
lvb = lli->lli_lvb;
rc = obd_merge_lvb(sbi->ll_osc_exp, lli->lli_smd, &lvb, 0);
ll_inode_size_lock(inode, 1);
inode_init_lvb(inode, &lvb);
- /* merge timestamps the most resently obtained from mds with
+ /* merge timestamps the most recently obtained from mds with
timestamps obtained from osts */
lvb.lvb_atime = lli->lli_lvb.lvb_atime;
lvb.lvb_mtime = lli->lli_lvb.lvb_mtime;
void *lli_opendir_key;
struct ll_statahead_info *lli_sai;
struct rw_semaphore lli_truncate_rwsem;
- /* the most recent attributes from mds, it is used for timestampts
+ /* the most recent attributes from mds, it is used for timestamps
* only so far */
struct ost_lvb lli_lvb;
struct inode lli_vfs_inode;
if (LTIME_S(attr->ia_mtime) < LTIME_S(attr->ia_ctime)){
struct ost_lvb xtimes;
+ UNLOCK_INODE_MUTEX(inode);
/* setting mtime to past is performed under PW
* EOF extent lock */
oinfo->oi_policy.l_extent.start = 0;
rc = ll_extent_lock(NULL, inode, lsm, LCK_PW,
&oinfo->oi_policy,
&lockh, 0);
+ LOCK_INODE_MUTEX(inode);
if (rc) {
OBD_FREE_PTR(oinfo);
RETURN(rc);