Loading fs/pipe.c +5 −6 Original line number Diff line number Diff line Loading @@ -894,19 +894,18 @@ int create_pipe_files(struct file **res, int flags) { struct inode *inode = get_pipe_inode(); struct file *f; int error; if (!inode) return -ENFILE; if (flags & O_NOTIFICATION_PIPE) { #ifdef CONFIG_WATCH_QUEUE if (watch_queue_init(inode->i_pipe) < 0) { error = watch_queue_init(inode->i_pipe); if (error) { free_pipe_info(inode->i_pipe); iput(inode); return -ENOMEM; return error; } #else return -ENOPKG; #endif } f = alloc_file_pseudo(inode, pipe_mnt, "", Loading include/linux/watch_queue.h +6 −0 Original line number Diff line number Diff line Loading @@ -122,6 +122,12 @@ static inline void remove_watch_list(struct watch_list *wlist, u64 id) */ #define watch_sizeof(STRUCT) (sizeof(STRUCT) << WATCH_INFO_LENGTH__SHIFT) #else static inline int watch_queue_init(struct pipe_inode_info *pipe) { return -ENOPKG; } #endif #endif /* _LINUX_WATCH_QUEUE_H */ Loading
fs/pipe.c +5 −6 Original line number Diff line number Diff line Loading @@ -894,19 +894,18 @@ int create_pipe_files(struct file **res, int flags) { struct inode *inode = get_pipe_inode(); struct file *f; int error; if (!inode) return -ENFILE; if (flags & O_NOTIFICATION_PIPE) { #ifdef CONFIG_WATCH_QUEUE if (watch_queue_init(inode->i_pipe) < 0) { error = watch_queue_init(inode->i_pipe); if (error) { free_pipe_info(inode->i_pipe); iput(inode); return -ENOMEM; return error; } #else return -ENOPKG; #endif } f = alloc_file_pseudo(inode, pipe_mnt, "", Loading
include/linux/watch_queue.h +6 −0 Original line number Diff line number Diff line Loading @@ -122,6 +122,12 @@ static inline void remove_watch_list(struct watch_list *wlist, u64 id) */ #define watch_sizeof(STRUCT) (sizeof(STRUCT) << WATCH_INFO_LENGTH__SHIFT) #else static inline int watch_queue_init(struct pipe_inode_info *pipe) { return -ENOPKG; } #endif #endif /* _LINUX_WATCH_QUEUE_H */