From: Jan E. <je...@co...> - 2007-08-31 10:40:08
|
On Aug 31 2007 12:34, Mark Phalan wrote: >mount.c:282->290 > struct pollfd pfd; > > pfd.fd = fd; > pfd.events = 0; > res = poll(&pfd, 1, 0); > /* If file poll returns POLLERR on the device file descriptor, > then the filesystem is already unmounted */ > if (res == 1 && (pfd.revents & POLLERR)) > return; > >This doesn't work as desired on OpenSolaris with our FUSE kernel module. >I'm trying to figure out whats it's trying to do.. > >Is the Linux FUSE kernel module flagging something on the file >descriptor (I can't look in the linux fuse kernel module due to >licensing issues) which causes poll(2) to fail? > >What does it mean to call poll(2) with events set to 0? I had a look at >the standard and it doesn't seem to be defined... I suppose it means "don't tell me anything", which seems kinda pointless, but nonetheless 'valid'. I wonder if testing for POLLRDHUP/WRHUP would not be better in the first place...(I do not know the exact FUSE internals, so that is just a guess). Jan -- |