inotify_rm_watch() EINVAL race condition for deleted files

From: Timo Sirainen
Date: Mon Jul 09 2007 - 00:28:49 EST


1. Add IN_DELETE_SELF watch to a file
2. unlink() the file
3. Try to remove the watch -> EINVAL

I undestand this happens because there's an IN_IGNORED event in the
inotify queue, but couldn't inotify_rm_watch() be silent about it if the
event hasn't been read()? Otherwise there's a race condition between the
read() and inotify_rm_watch(), so I'll just always have to ignore EINVAL
errors. I don't like ignoring errors.

(2.6.21.3 + ext3 if it matters)

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