fsnotify(): switch to passing const struct qstr * for file_name
Note that in fnsotify_move() and fsnotify_link() we are guaranteed that dentry->d_name won't change during the fsnotify() evaluation (by having the parent directory locked exclusive), so we don't need to fetch dentry->d_name.name in the callers. In fsnotify_dirent() the same stability of dentry->d_name is also true, but it's a bit more convoluted - there is one callchain (devpts_pty_new() -> fsnotify_create() -> fsnotify_dirent()) where the parent is _not_ locked, but on devpts ->d_name of everything is unchanging; it has neither explicit nor implicit renames. Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
@@ -350,7 +350,7 @@ struct fsnotify_mark {
|
||||
|
||||
/* main fsnotify call to send events */
|
||||
extern int fsnotify(struct inode *to_tell, __u32 mask, const void *data, int data_is,
|
||||
const unsigned char *name, u32 cookie);
|
||||
const struct qstr *name, u32 cookie);
|
||||
extern int __fsnotify_parent(const struct path *path, struct dentry *dentry, __u32 mask);
|
||||
extern void __fsnotify_inode_delete(struct inode *inode);
|
||||
extern void __fsnotify_vfsmount_delete(struct vfsmount *mnt);
|
||||
@@ -505,7 +505,7 @@ static inline void fsnotify_init_event(struct fsnotify_event *event,
|
||||
#else
|
||||
|
||||
static inline int fsnotify(struct inode *to_tell, __u32 mask, const void *data, int data_is,
|
||||
const unsigned char *name, u32 cookie)
|
||||
const struct qstr *name, u32 cookie)
|
||||
{
|
||||
return 0;
|
||||
}
|
||||
|
Reference in New Issue
Block a user