Re: [PATCH 1/6] lib: Implement range locks

2013-02-11 Thread Jan Kara
On Mon 11-02-13 03:03:30, Michel Lespinasse wrote: > On Mon, Feb 11, 2013 at 2:27 AM, Jan Kara wrote: > > On Sun 10-02-13 21:42:32, Michel Lespinasse wrote: > >> On Thu, Jan 31, 2013 at 1:49 PM, Jan Kara wrote: > >> > +void range_lock_init(struct range_lock *lock, unsigned long start, > >> > +

Re: [PATCH 1/6] lib: Implement range locks

2013-02-11 Thread Michel Lespinasse
On Mon, Feb 11, 2013 at 2:27 AM, Jan Kara wrote: > On Sun 10-02-13 21:42:32, Michel Lespinasse wrote: >> On Thu, Jan 31, 2013 at 1:49 PM, Jan Kara wrote: >> > +void range_lock_init(struct range_lock *lock, unsigned long start, >> > +unsigned long end); >> > +void

Re: [PATCH 1/6] lib: Implement range locks

2013-02-11 Thread Jan Kara
On Sun 10-02-13 21:42:32, Michel Lespinasse wrote: > Hi Jan, > > On Thu, Jan 31, 2013 at 1:49 PM, Jan Kara wrote: > > Implement range locking using interval tree. > > Yay! I like to see interval trees being put to good use. Yeah, you saved me some coding of interval tree implementation :) The

Re: [PATCH 1/6] lib: Implement range locks

2013-02-11 Thread Jan Kara
On Sun 10-02-13 21:42:32, Michel Lespinasse wrote: Hi Jan, On Thu, Jan 31, 2013 at 1:49 PM, Jan Kara j...@suse.cz wrote: Implement range locking using interval tree. Yay! I like to see interval trees being put to good use. Yeah, you saved me some coding of interval tree implementation

Re: [PATCH 1/6] lib: Implement range locks

2013-02-11 Thread Michel Lespinasse
On Mon, Feb 11, 2013 at 2:27 AM, Jan Kara j...@suse.cz wrote: On Sun 10-02-13 21:42:32, Michel Lespinasse wrote: On Thu, Jan 31, 2013 at 1:49 PM, Jan Kara j...@suse.cz wrote: +void range_lock_init(struct range_lock *lock, unsigned long start, +unsigned long end); +void

Re: [PATCH 1/6] lib: Implement range locks

2013-02-11 Thread Jan Kara
On Mon 11-02-13 03:03:30, Michel Lespinasse wrote: On Mon, Feb 11, 2013 at 2:27 AM, Jan Kara j...@suse.cz wrote: On Sun 10-02-13 21:42:32, Michel Lespinasse wrote: On Thu, Jan 31, 2013 at 1:49 PM, Jan Kara j...@suse.cz wrote: +void range_lock_init(struct range_lock *lock, unsigned long

Re: [PATCH 1/6] lib: Implement range locks

2013-02-10 Thread Michel Lespinasse
Hi Jan, On Thu, Jan 31, 2013 at 1:49 PM, Jan Kara wrote: > Implement range locking using interval tree. Yay! I like to see interval trees being put to good use. > +/* > + * Range locking > + * > + * We allow exclusive locking of arbitrary ranges. We guarantee that each > + * range is locked

Re: [PATCH 1/6] lib: Implement range locks

2013-02-10 Thread Michel Lespinasse
Hi Jan, On Thu, Jan 31, 2013 at 1:49 PM, Jan Kara j...@suse.cz wrote: Implement range locking using interval tree. Yay! I like to see interval trees being put to good use. +/* + * Range locking + * + * We allow exclusive locking of arbitrary ranges. We guarantee that each + * range is

Re: [PATCH 1/6] lib: Implement range locks

2013-02-04 Thread Jan Kara
On Thu 31-01-13 15:57:26, Andrew Morton wrote: > On Thu, 31 Jan 2013 22:49:49 +0100 > Jan Kara wrote: > > > Implement range locking using interval tree. > > > > ... > > > > +void range_lock(struct range_lock_tree *tree, struct range_lock *lock) > > +{ > > + struct interval_tree_node *node; >

Re: [PATCH 1/6] lib: Implement range locks

2013-02-04 Thread Jan Kara
On Thu 31-01-13 15:57:26, Andrew Morton wrote: On Thu, 31 Jan 2013 22:49:49 +0100 Jan Kara j...@suse.cz wrote: Implement range locking using interval tree. ... +void range_lock(struct range_lock_tree *tree, struct range_lock *lock) +{ + struct interval_tree_node *node; +

Re: [PATCH 1/6] lib: Implement range locks

2013-01-31 Thread Andrew Morton
On Thu, 31 Jan 2013 22:49:49 +0100 Jan Kara wrote: > Implement range locking using interval tree. > > ... > > +void range_lock(struct range_lock_tree *tree, struct range_lock *lock) > +{ > + struct interval_tree_node *node; > + unsigned long flags; > + > + spin_lock_irqsave(>lock,

Re: [PATCH 1/6] lib: Implement range locks

2013-01-31 Thread Andrew Morton
On Thu, 31 Jan 2013 22:49:49 +0100 Jan Kara j...@suse.cz wrote: Implement range locking using interval tree. ... +void range_lock(struct range_lock_tree *tree, struct range_lock *lock) +{ + struct interval_tree_node *node; + unsigned long flags; + +