Whamcloud - gitweb
LU-4257 clio: replace semaphore with mutex
[fs/lustre-release.git] / lustre / llite / llite_lib.c
index 090d4c5..f8b9519 100644 (file)
@@ -1001,8 +1001,7 @@ void ll_lli_init(struct ll_inode_info *lli)
                spin_lock_init(&lli->lli_sa_lock);
                lli->lli_opendir_pid = 0;
        } else {
-               sema_init(&lli->lli_size_sem, 1);
-               lli->lli_size_sem_owner = NULL;
+               mutex_init(&lli->lli_size_mutex);
                lli->lli_symlink_name = NULL;
                init_rwsem(&lli->lli_trunc_sem);
                mutex_init(&lli->lli_write_mutex);
@@ -1950,25 +1949,20 @@ int ll_statfs(struct dentry *de, struct kstatfs *sfs)
 
 void ll_inode_size_lock(struct inode *inode)
 {
-        struct ll_inode_info *lli;
+       struct ll_inode_info *lli;
 
-        LASSERT(!S_ISDIR(inode->i_mode));
+       LASSERT(!S_ISDIR(inode->i_mode));
 
-        lli = ll_i2info(inode);
-        LASSERT(lli->lli_size_sem_owner != current);
-       down(&lli->lli_size_sem);
-        LASSERT(lli->lli_size_sem_owner == NULL);
-        lli->lli_size_sem_owner = current;
+       lli = ll_i2info(inode);
+       mutex_lock(&lli->lli_size_mutex);
 }
 
 void ll_inode_size_unlock(struct inode *inode)
 {
-        struct ll_inode_info *lli;
+       struct ll_inode_info *lli;
 
-        lli = ll_i2info(inode);
-        LASSERT(lli->lli_size_sem_owner == current);
-        lli->lli_size_sem_owner = NULL;
-       up(&lli->lli_size_sem);
+       lli = ll_i2info(inode);
+       mutex_unlock(&lli->lli_size_mutex);
 }
 
 void ll_update_inode(struct inode *inode, struct lustre_md *md)