diff options
Diffstat (limited to 'fs/ocfs2/dlmglue.c')
| -rw-r--r-- | fs/ocfs2/dlmglue.c | 13 | 
1 files changed, 8 insertions, 5 deletions
diff --git a/fs/ocfs2/dlmglue.c b/fs/ocfs2/dlmglue.c index 4f7795fb5fc..12ae194ac94 100644 --- a/fs/ocfs2/dlmglue.c +++ b/fs/ocfs2/dlmglue.c @@ -2045,8 +2045,8 @@ static void __ocfs2_stuff_meta_lvb(struct inode *inode)  	lvb->lvb_version   = OCFS2_LVB_VERSION;  	lvb->lvb_isize	   = cpu_to_be64(i_size_read(inode));  	lvb->lvb_iclusters = cpu_to_be32(oi->ip_clusters); -	lvb->lvb_iuid      = cpu_to_be32(inode->i_uid); -	lvb->lvb_igid      = cpu_to_be32(inode->i_gid); +	lvb->lvb_iuid      = cpu_to_be32(i_uid_read(inode)); +	lvb->lvb_igid      = cpu_to_be32(i_gid_read(inode));  	lvb->lvb_imode     = cpu_to_be16(inode->i_mode);  	lvb->lvb_inlink    = cpu_to_be16(inode->i_nlink);  	lvb->lvb_iatime_packed  = @@ -2095,8 +2095,8 @@ static void ocfs2_refresh_inode_from_lvb(struct inode *inode)  	else  		inode->i_blocks = ocfs2_inode_sector_count(inode); -	inode->i_uid     = be32_to_cpu(lvb->lvb_iuid); -	inode->i_gid     = be32_to_cpu(lvb->lvb_igid); +	i_uid_write(inode, be32_to_cpu(lvb->lvb_iuid)); +	i_gid_write(inode, be32_to_cpu(lvb->lvb_igid));  	inode->i_mode    = be16_to_cpu(lvb->lvb_imode);  	set_nlink(inode, be16_to_cpu(lvb->lvb_inlink));  	ocfs2_unpack_timespec(&inode->i_atime, @@ -2545,6 +2545,7 @@ int ocfs2_super_lock(struct ocfs2_super *osb,  	 * everything is up to the caller :) */  	status = ocfs2_should_refresh_lock_res(lockres);  	if (status < 0) { +		ocfs2_cluster_unlock(osb, lockres, level);  		mlog_errno(status);  		goto bail;  	} @@ -2553,8 +2554,10 @@ int ocfs2_super_lock(struct ocfs2_super *osb,  		ocfs2_complete_lock_res_refresh(lockres, status); -		if (status < 0) +		if (status < 0) { +			ocfs2_cluster_unlock(osb, lockres, level);  			mlog_errno(status); +		}  		ocfs2_track_lock_refresh(lockres);  	}  bail:  |