public inbox for linux-kernel@vger.kernel.org
 help / color / mirror / Atom feed
* [PATCH] Introduce down_nowait()
@ 2008-05-21  6:00 Rusty Russell
  2008-05-21  6:29 ` Andrew Morton
  0 siblings, 1 reply; 10+ messages in thread
From: Rusty Russell @ 2008-05-21  6:00 UTC (permalink / raw)
  To: Linus Torvalds
  Cc: linux-kernel, Stephen Rothwell, Andrew Morton, Christoph Hellwig,
	Matthew Wilcox

I planned on removing the much-disliked down_trylock() (with its
backwards return codes) in 2.6.27, but it's creating something of a
logjam with other patches in -mm and linux-next.

Andrew suggested introducing "down_nowait" as a wrapper now, to make
the transition easier.

Signed-off-by: Rusty Russell <rusty@rustcorp.com.au>
Cc: Andrew Morton <akpm@linux-foundation.org>
Cc: Christoph Hellwig <hch@infradead.org>
Cc: Matthew Wilcox <matthew@wil.cx>
Cc: Stephen Rothwell <sfr@canb.auug.org.au>

diff -r 92664ae4130b include/linux/semaphore.h
--- a/include/linux/semaphore.h	Wed May 21 14:54:40 2008 +1000
+++ b/include/linux/semaphore.h	Wed May 21 15:07:31 2008 +1000
@@ -48,4 +48,18 @@ extern int __must_check down_timeout(str
 extern int __must_check down_timeout(struct semaphore *sem, long jiffies);
 extern void up(struct semaphore *sem);
 
+/**
+ * down_nowait - try to down a semaphore, but don't block
+ * @sem: the semaphore
+ *
+ * This is equivalent to down_trylock(), but has the same return codes as
+ * spin_trylock and mutex_trylock: 1 if semaphore acquired, 0 if not.
+ *
+ * down_trylock() with its confusing return codes will be deprecated
+ * soon.  It will not be missed.
+ */
+static inline int __must_check down_nowait(struct semaphore *sem)
+{
+        return !down_trylock(sem);
+}
 #endif /* __LINUX_SEMAPHORE_H */

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2008-05-23  0:52 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2008-05-21  6:00 [PATCH] Introduce down_nowait() Rusty Russell
2008-05-21  6:29 ` Andrew Morton
2008-05-21  7:56   ` Rusty Russell
2008-05-21 17:04     ` Daniel Walker
2008-05-22  8:56       ` Rusty Russell
2008-05-22 15:48         ` Daniel Walker
2008-05-23  0:52           ` Rusty Russell
2008-05-21  8:04   ` Christoph Hellwig
2008-05-21  8:19     ` Andrew Morton
2008-05-21 12:09       ` Rusty Russell

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox