|
@@ -48,7 +48,7 @@ static inline struct cifsFileInfo *cifs_init_private(
|
|
|
private_data->netfid = netfid;
|
|
|
private_data->pid = current->tgid;
|
|
|
init_MUTEX(&private_data->fh_sem);
|
|
|
- init_MUTEX(&private_data->lock_sem);
|
|
|
+ mutex_init(&private_data->lock_mutex);
|
|
|
INIT_LIST_HEAD(&private_data->llist);
|
|
|
private_data->pfile = file; /* needed for writepage */
|
|
|
private_data->pInode = inode;
|
|
@@ -511,12 +511,12 @@ int cifs_close(struct inode *inode, struct file *file)
|
|
|
|
|
|
/* Delete any outstanding lock records.
|
|
|
We'll lose them when the file is closed anyway. */
|
|
|
- down(&pSMBFile->lock_sem);
|
|
|
+ mutex_lock(&pSMBFile->lock_mutex);
|
|
|
list_for_each_entry_safe(li, tmp, &pSMBFile->llist, llist) {
|
|
|
list_del(&li->llist);
|
|
|
kfree(li);
|
|
|
}
|
|
|
- up(&pSMBFile->lock_sem);
|
|
|
+ mutex_unlock(&pSMBFile->lock_mutex);
|
|
|
|
|
|
write_lock(&GlobalSMBSeslock);
|
|
|
list_del(&pSMBFile->flist);
|
|
@@ -601,9 +601,9 @@ static int store_file_lock(struct cifsFileInfo *fid, __u64 len,
|
|
|
li->offset = offset;
|
|
|
li->length = len;
|
|
|
li->type = lockType;
|
|
|
- down(&fid->lock_sem);
|
|
|
+ mutex_lock(&fid->lock_mutex);
|
|
|
list_add(&li->llist, &fid->llist);
|
|
|
- up(&fid->lock_sem);
|
|
|
+ mutex_unlock(&fid->lock_mutex);
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
@@ -760,7 +760,7 @@ int cifs_lock(struct file *file, int cmd, struct file_lock *pfLock)
|
|
|
struct cifsLockInfo *li, *tmp;
|
|
|
|
|
|
rc = 0;
|
|
|
- down(&fid->lock_sem);
|
|
|
+ mutex_lock(&fid->lock_mutex);
|
|
|
list_for_each_entry_safe(li, tmp, &fid->llist, llist) {
|
|
|
if (pfLock->fl_start <= li->offset &&
|
|
|
length >= li->length) {
|
|
@@ -774,7 +774,7 @@ int cifs_lock(struct file *file, int cmd, struct file_lock *pfLock)
|
|
|
kfree(li);
|
|
|
}
|
|
|
}
|
|
|
- up(&fid->lock_sem);
|
|
|
+ mutex_unlock(&fid->lock_mutex);
|
|
|
}
|
|
|
}
|
|
|
|