Help!

[PATCH][CIFS] Convert new lock_sem to a mutex

 
  

Post new topic   General Reply to Topic (not reply to a specific post)    Forums Home -> Kernel (archive) RSS
Next:  2.6.18-rc5 with GRE, iptables and Speedtouch ADSL..  
Author Message
Roland Dreier
External


Since: Sep 02, 2006
Posts: 1



PostPosted: Sat Sep 02, 2006 11:40 pm    Post subject: [PATCH][CIFS] Convert new lock_sem to a mutex
Archived from groups: linux>kernel (more info?)

The recent change to "allow Windows blocking locks to be cancelled via
a CANCEL_LOCK call" introduced a new semaphore in struct cifsFileInfo,
lock_sem. However, semaphores used as mutexes are deprecated these
days, and there's no reason to add a new one to the kernel.
Therefore, convert lock_sem to a struct mutex (and also fix one
indentation glitch on one of the lines changed anyway).

Compile tested only, since I don't use CIFS.

Signed-off-by: Roland Dreier <roland.DeleteThis@digitalvampire.org>

---

diff --git a/fs/cifs/cifsglob.h b/fs/cifs/cifsglob.h
index b24006c..5d7048a 100644
--- a/fs/cifs/cifsglob.h
+++ b/fs/cifs/cifsglob.h
@@ -306,7 +306,7 @@ struct cifsFileInfo {
/* lock scope id (0 if none) */
struct file * pfile; /* needed for writepage */
struct inode * pInode; /* needed for oplock break */
- struct semaphore lock_sem;
+ struct mutex lock_mutex;
struct list_head llist; /* list of byte range locks we have. */
unsigned closePend:1; /* file is marked to close */
unsigned invalidHandle:1; /* file closed via session abend */
diff --git a/fs/cifs/dir.c b/fs/cifs/dir.c
index 914239d..58042f5 100644
--- a/fs/cifs/dir.c
+++ b/fs/cifs/dir.c
@@ -267,7 +267,7 @@ cifs_create(struct inode *inode, struct
pCifsFile->invalidHandle = FALSE;
pCifsFile->closePend = FALSE;
init_MUTEX(&pCifsFile->fh_sem);
- init_MUTEX(&pCifsFile->lock_sem);
+ mutex_init(&pCifsFile->lock_mutex);
INIT_LIST_HEAD(&pCifsFile->llist);
atomic_set(&pCifsFile->wrtPending,0);

diff --git a/fs/cifs/file.c b/fs/cifs/file.c
index e9c5ba9..e27f077 100644
--- a/fs/cifs/file.c
+++ b/fs/cifs/file.c
@@ -48,7 +48,7 @@ static inline struct cifsFileInfo *cifs_
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;
@@ -504,12 +504,12 @@ int cifs_close(struct inode *inode, stru

/* 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);
@@ -594,9 +594,9 @@ static int store_file_lock(struct cifsFi
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;
}

@@ -752,7 +752,7 @@ int cifs_lock(struct file *file, int cmd
int stored_rc = 0;
struct cifsLockInfo *li, *tmp;

- 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) {
@@ -766,7 +766,7 @@ int cifs_lock(struct file *file, int cmd
kfree(li);
}
}
- up(&fid->lock_sem);
+ mutex_unlock(&fid->lock_mutex);
}
}


--
VGER BF report: H 2.74101e-05
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo.DeleteThis@vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Back to top
Jan Engelhardt
External


Since: Jun 24, 2004
Posts: 1116



PostPosted: Mon Jan 15, 2007 5:50 pm    Post subject: Re: [PATCH][CIFS] Convert new lock_sem to a mutex [Login to view extended thread Info.]
Archived from groups: per prev. post (more info?)

On Sep 2 2006 14:36, Roland Dreier wrote:

>Date: Sat, 02 Sep 2006 14:36:46 -0700
>From: Roland Dreier <roland DeleteThis @love-shack.home.digitalvampire.org>
>To: sfrench DeleteThis @us.ibm.com
>Cc: linux-kernel DeleteThis @vger.kernel.org, jra DeleteThis @samba.org
>Subject: [PATCH][CIFS] Convert new lock_sem to a mutex

A bit dated, however...

since 2.6.20-rc5 still happens to use lock_sem, I tried
this patch (in 2.6.1Cool. Works fine, nothing seemed to
break.


-`J'
--
-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo DeleteThis @vger.kernel.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/
Back to top
Display posts from previous:   
Post new topic   General Reply to Topic (not reply to a specific post)    Forums Home -> Kernel (archive) All times are: Eastern Time (US & Canada) (change)
Page 1 of 1

 
You can post new topics in this forum
You can reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum