__u32 old_mask, new_mask;
        __u32 mask;
        int add = (arg & IN_MASK_ADD);
+       int create = (arg & IN_MASK_CREATE);
        int ret;
 
        mask = inotify_arg_to_mask(arg);
        fsn_mark = fsnotify_find_mark(&inode->i_fsnotify_marks, group);
        if (!fsn_mark)
                return -ENOENT;
+       else if (create)
+               return -EEXIST;
 
        i_mark = container_of(fsn_mark, struct inotify_inode_mark, fsn_mark);
 
        if (unlikely(!f.file))
                return -EBADF;
 
+       /* IN_MASK_ADD and IN_MASK_CREATE don't make sense together */
+       if (unlikely((mask & IN_MASK_ADD) && (mask & IN_MASK_CREATE)))
+               return -EINVAL;
+
        /* verify that this is indeed an inotify instance */
        if (unlikely(f.file->f_op != &inotify_fops)) {
                ret = -EINVAL;
        BUILD_BUG_ON(IN_ISDIR != FS_ISDIR);
        BUILD_BUG_ON(IN_ONESHOT != FS_IN_ONESHOT);
 
-       BUG_ON(hweight32(ALL_INOTIFY_BITS) != 21);
+       BUG_ON(hweight32(ALL_INOTIFY_BITS) != 22);
 
        inotify_inode_mark_cachep = KMEM_CACHE(inotify_inode_mark, SLAB_PANIC);
 
 
                          IN_DELETE_SELF | IN_MOVE_SELF | IN_UNMOUNT | \
                          IN_Q_OVERFLOW | IN_IGNORED | IN_ONLYDIR | \
                          IN_DONT_FOLLOW | IN_EXCL_UNLINK | IN_MASK_ADD | \
-                         IN_ISDIR | IN_ONESHOT)
+                         IN_MASK_CREATE | IN_ISDIR | IN_ONESHOT)
 
 #endif /* _LINUX_INOTIFY_H */
 
 #define IN_ONLYDIR             0x01000000      /* only watch the path if it is a directory */
 #define IN_DONT_FOLLOW         0x02000000      /* don't follow a sym link */
 #define IN_EXCL_UNLINK         0x04000000      /* exclude events on unlinked objects */
+#define IN_MASK_CREATE         0x10000000      /* only create watches */
 #define IN_MASK_ADD            0x20000000      /* add to the mask of an already existing watch */
 #define IN_ISDIR               0x40000000      /* event occurred against dir */
 #define IN_ONESHOT             0x80000000      /* only send event once */