Re: [gamin] inotify compatability patch



On Fri, 2005-04-01 at 16:25 +0200, Martin Schlemmer wrote:
> On Wed, 2005-03-16 at 16:28 -0500, John McCutchan wrote:
> > Hey,
> > 
> > Inotify has changed (for the final time - no, really) it's user space
> > interface. Robert Love sent patches out this afternoon, and here is an
> > update for gamin.
> > 
> > In short, inotify now expects a fd instead of a path. 
> > 
> > old way,
> > wd = ioctl(devfd, "/foo/bar", INOTIFY_WATCH, mask);
> > 
> > new way,
> > fd = open("/foo/bar", O_RDONLY);
> > if (fd < 0)
> > 	return
> > wd = ioctl(devfd, fd, INOTIFY_WATCH, mask);
> > close(fd); // <---- Close the fd immediately after requesting the watch.
> > 
> > This interface has made the kernel guys happy, so this should be the
> > last interface change.
> > 
> 
> Probably missing something here, but with latest cvs gamin, and latest
> inotify patch (seems like it does the fd thing) from rml's kernel.org
> site, its not working.  If you need help debugging, let me know what you
> need.
> 

Ok, its a problem with the inotify backend.  Attached is a patch from
Todor Penev <tpenev gmail com> (applies against CVS) to fix this.
Basically gam_inotify_add_rm_handler overrides the global 'fd' variable
used to open the device node ...


-- 
Martin Schlemmer


--- gamin-0.0.26.orig/server/gam_inotify.c	2005-03-28 20:25:10.000000000 +0200
+++ gamin-0.0.26/server/gam_inotify.c	2005-04-03 01:16:14.000000000 +0200
@@ -118,17 +117,17 @@ gam_inotify_add_rm_handler(const char *p
         }
 
 	{
-	    int fd = open(path, O_RDONLY);
+	    int file_fd = open(path, O_RDONLY);
 
-	    if (fd < 0) {
+	    if (file_fd < 0) {
 		G_UNLOCK(inotify);
 		return;
 	    }
 
-	    iwr.fd = fd;
+	    iwr.fd = file_fd;
 	    iwr.mask = 0xffffffff; // all events
 	    wd = ioctl(fd, INOTIFY_WATCH, &iwr);
-	    close (fd);
+	    close (file_fd);
 	}
 
         if (wd < 0) {

Attachment: signature.asc
Description: This is a digitally signed message part



[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]