#include <linux/fsnotify_backend.h> #include <linux/path.h> #include <linux/slab.h> extern struct kmem_cache *fanotify_event_cachep; extern struct kmem_cache *fanotify_perm_event_cachep; /* * Structure for normal fanotify events. It gets allocated in * fanotify_handle_event() and freed when the information is retrieved by * userspace */ struct fanotify_event_info { struct fsnotify_event fse; /* * We hold ref to this path so it may be dereferenced at any point * during this object's lifetime */ struct path path; struct pid *tgid; }; #ifdef CONFIG_FANOTIFY_ACCESS_PERMISSIONS /* * Structure for permission fanotify events. It gets allocated and freed in * fanotify_handle_event() since we wait there for user response. When the * information is retrieved by userspace the structure is moved from * group->notification_list to group->fanotify_data.access_list to wait for * user response. */ struct fanotify_perm_event_info { struct fanotify_event_info fae; int response; /* userspace answer to question */ int fd; /* fd we passed to userspace for this event */ }; static inline struct fanotify_perm_event_info * FANOTIFY_PE(struct fsnotify_event *fse) { return container_of(fse, struct fanotify_perm_event_info, fae.fse); } #endif static inline struct fanotify_event_info *FANOTIFY_E(struct fsnotify_event *fse) { return container_of(fse, struct fanotify_event_info, fse); } struct fanotify_event_info *fanotify_alloc_event(struct inode *inode, u32 mask, const struct path *path); ass='sub right'>Tobias Klauser</td></tr></table> <table class='tabs'><tr><td> <a href='/cgit.cgi/linux/net-next.git/?h=nds-private-remove'>summary</a><a href='/cgit.cgi/linux/net-next.git/refs/?h=nds-private-remove&id=775a2e29c3bbcf853432f47d3caa9ff8808807ad'>refs</a><a href='/cgit.cgi/linux/net-next.git/log/include/trace?h=nds-private-remove'>log</a><a href='/cgit.cgi/linux/net-next.git/tree/include/trace?h=nds-private-remove&id=775a2e29c3bbcf853432f47d3caa9ff8808807ad'>tree</a><a class='active' href='/cgit.cgi/linux/net-next.git/commit/include/trace?h=nds-private-remove&id=775a2e29c3bbcf853432f47d3caa9ff8808807ad'>commit</a><a href='/cgit.cgi/linux/net-next.git/diff/include/trace?h=nds-private-remove&id=775a2e29c3bbcf853432f47d3caa9ff8808807ad'>diff</a></td><td class='form'><form class='right' method='get' action='/cgit.cgi/linux/net-next.git/log/include/trace'> <input type='hidden' name='h' value='nds-private-remove'/><input type='hidden' name='id' value='775a2e29c3bbcf853432f47d3caa9ff8808807ad'/><select name='qt'> <option value='grep'>log msg</option> <option value='author'>author</option> <option value='committer'>committer</option> <option value='range'>range</option> </select> <input class='txt' type='search' size='10' name='q' value=''/> <input type='submit' value='search'/> </form> </td></tr></table> <div class='path'>path: <a href='/cgit.cgi/linux/net-next.git/commit/?h=nds-private-remove&id=775a2e29c3bbcf853432f47d3caa9ff8808807ad'>root</a>/<a href='/cgit.cgi/linux/net-next.git/commit/include?h=nds-private-remove&id=775a2e29c3bbcf853432f47d3caa9ff8808807ad'>include</a>/<a href='/cgit.cgi/linux/net-next.git/commit/include/trace?h=nds-private-remove&id=775a2e29c3bbcf853432f47d3caa9ff8808807ad'>trace</a></div><div class='content'><div class='cgit-panel'><b>diff options</b><form method='get'><input type='hidden' name='h' value='nds-private-remove'/><input type='hidden' name='id' value='775a2e29c3bbcf853432f47d3caa9ff8808807ad'/><table><tr><td colspan='2'/></tr><tr><td class='label'>context:</td><td class='ctrl'><select name='context' onchange='this.form.submit();'><option value='1'>1</option><option value='2'>2</option><option value='3' selected='selected'>3</option><option value='4'>4</option><option value='5'>5</option><option value='6'>6</option><option value='7'>7</option><option value='8'>8</option><option value='9'>9</option><option value='10'>10</option><option value='15'>15</option><option value='20'>20</option><option value='25'>25</option><option value='30'>30</option><option value='35'>35</option><option value='40'>40</option></select></td></tr><tr><td class='label'>space:</td><td class='ctrl'><select name='ignorews' onchange='this.form.submit();'><option value='0' selected='selected'>include</option><option value='1'>ignore</option></select></td></tr><tr><td class='label'>mode:</td><td class='ctrl'><select name='dt' onchange='this.form.submit();'><option value='0' selected='selected'>unified</option><option value='1'>ssdiff</option><option value='2'>stat only</option></select></td></tr><tr><td/><td class='ctrl'><noscript><input type='submit' value='reload'/></noscript></td></tr></table></form></div><table summary='commit info' class='commit-info'> <tr><th>author</th><td>Linus Torvalds <torvalds@linux-foundation.org></td><td class='right'>2016-12-14 11:01:00 -0800</td></tr> <tr><th>committer</th><td>Linus Torvalds <torvalds@linux-foundation.org></td><td class='right'>2016-12-14 11:01:00 -0800</td></tr> <tr><th>commit</th><td colspan='2' class='oid'><a href='/cgit.cgi/linux/net-next.git/commit/include/trace?h=nds-private-remove&id=775a2e29c3bbcf853432f47d3caa9ff8808807ad'>775a2e29c3bbcf853432f47d3caa9ff8808807ad</a> (<a href='/cgit.cgi/linux/net-next.git/patch/include/trace?id=775a2e29c3bbcf853432f47d3caa9ff8808807ad'>patch</a>)</td></tr> <tr><th>tree</th><td colspan='2' class='oid'><a href='/cgit.cgi/linux/net-next.git/tree/?h=nds-private-remove&id=775a2e29c3bbcf853432f47d3caa9ff8808807ad'>614a7481b68dc9b0b628f392ab9bbdc53bbfe447</a> /<a href='/cgit.cgi/linux/net-next.git/tree/include/trace?h=nds-private-remove&id=775a2e29c3bbcf853432f47d3caa9ff8808807ad'>include/trace</a></td></tr> <tr><th>parent</th><td colspan='2' class='oid'><a href='/cgit.cgi/linux/net-next.git/commit/include/trace?h=nds-private-remove&id=2a4c32edd39b7de166e723b1991abcde4db3a701'>2a4c32edd39b7de166e723b1991abcde4db3a701</a> (<a href='/cgit.cgi/linux/net-next.git/diff/include/trace?h=nds-private-remove&id=775a2e29c3bbcf853432f47d3caa9ff8808807ad&id2=2a4c32edd39b7de166e723b1991abcde4db3a701'>diff</a>)</td></tr><tr><th>parent</th><td colspan='2' class='oid'><a href='/cgit.cgi/linux/net-next.git/commit/include/trace?h=nds-private-remove&id=ef548c551e72dbbdcc6d9ed7c7b3b01083fea8e2'>ef548c551e72dbbdcc6d9ed7c7b3b01083fea8e2</a> (<a href='/cgit.cgi/linux/net-next.git/diff/include/trace?h=nds-private-remove&id=775a2e29c3bbcf853432f47d3caa9ff8808807ad&id2=ef548c551e72dbbdcc6d9ed7c7b3b01083fea8e2'>diff</a>)</td></tr></table> <div class='commit-subject'>Merge tag 'dm-4.10-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm</div><div class='commit-msg'>Pull device mapper updates from Mike Snitzer: - various fixes and improvements to request-based DM and DM multipath - some locking improvements in DM bufio - add Kconfig option to disable the DM block manager's extra locking which mainly serves as a developer tool - a few bug fixes to DM's persistent-data - a couple changes to prepare for multipage biovec support in the block layer - various improvements and cleanups in the DM core, DM cache, DM raid and DM crypt - add ability to have DM crypt use keys from the kernel key retention service - add a new "error_writes" feature to the DM flakey target, reads are left unchanged in this mode * tag 'dm-4.10-changes' of git://git.kernel.org/pub/scm/linux/kernel/git/device-mapper/linux-dm: (40 commits) dm flakey: introduce "error_writes" feature dm cache policy smq: use hash_32() instead of hash_32_generic() dm crypt: reject key strings containing whitespace chars dm space map: always set ev if sm_ll_mutate() succeeds dm space map metadata: skip useless memcpy in metadata_ll_init_index() dm space map metadata: fix 'struct sm_metadata' leak on failed create Documentation: dm raid: define data_offset status field dm raid: fix discard support regression dm raid: don't allow "write behind" with raid4/5/6 dm mpath: use hw_handler_params if attached hw_handler is same as requested dm crypt: add ability to use keys from the kernel key retention service dm array: remove a dead assignment in populate_ablock_with_values() dm ioctl: use offsetof() instead of open-coding it dm rq: simplify use_blk_mq initialization dm: use blk_set_queue_dying() in __dm_destroy() dm bufio: drop the lock when doing GFP_NOIO allocation dm bufio: don't take the lock in dm_bufio_shrink_count dm bufio: avoid sleeping while holding the dm_bufio lock dm table: simplify dm_table_determine_type() dm table: an 'all_blk_mq' table must be loaded for a blk-mq DM device ... </div><div class='diffstat-header'><a href='/cgit.cgi/linux/net-next.git/diff/?h=nds-private-remove&id=775a2e29c3bbcf853432f47d3caa9ff8808807ad'>Diffstat</a> (limited to 'include/trace')</div><table summary='diffstat' class='diffstat'>