Messages in this thread Patch in this message | | | Subject | [patch] inotify: idr_get_new_above not working? | From | Robert Love <> | Date | Mon, 15 Aug 2005 12:27:54 -0400 |
| |
On Mon, 2005-08-15 at 10:16 -0400, John McCutchan wrote:
> Inotify is using idr_get_new_above to make sure that the next watch > descriptor is larger/different than any of the previous watch > descriptors. We keep track of the largest wd that we get out of > idr_get_new_above, and pass that to idr_get_new_above. I have noticed > though, that idr_get_new_above always returns the first available id. > This causes a serious problem for inotify, because user space will get a > IGNORE event for a wd K that might refer to the last holder of the K.
Turns out that the problem was in our court and not the idr layer. idr_get_new_above() seems to work fine.
One-line patch is attached. Please merge before 2.6.13.
Robert Love
We are saving the wrong thing in ->last_wd. We want the wd, not the return value.
Signed-off-by: Robert Love <rml@novell.com>
fs/inotify.c | 2 +- 1 files changed, 1 insertion(+), 1 deletion(-)
diff -urN linux-2.6.13-rc6-git2/fs/inotify.c linux/fs/inotify.c --- linux-2.6.13-rc6-git2/fs/inotify.c 2005-08-09 16:52:16.000000000 -0400 +++ linux/fs/inotify.c 2005-08-15 12:21:18.000000000 -0400 @@ -402,7 +402,7 @@ return ERR_PTR(ret); } - dev->last_wd = ret; + dev->last_wd = watch->wd; watch->mask = mask; atomic_set(&watch->count, 0); INIT_LIST_HEAD(&watch->d_list);
- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/
| |