diff options
| author | Eric Paris <eparis@redhat.com> | 2010-02-08 12:53:52 -0500 |
|---|---|---|
| committer | Eric Paris <eparis@redhat.com> | 2010-07-28 09:59:01 -0400 |
| commit | 59b0df211bd9699d7e0d01fcf9345a149f75b033 (patch) | |
| tree | 0f6e8bebfa090aa5c1d91d9efc5c2b04aeeed05c /include/linux | |
| parent | 43ed7e16a8b47059d7f6ff67ba76f383a2421de3 (diff) | |
fsnotify: use unsigned char * for dentry->d_name.name
fsnotify was using char * when it passed around the d_name.name string
internally but it is actually an unsigned char *. This patch switches
fsnotify to use unsigned and should silence some pointer signess warnings
which have popped out of xfs. I do not add -Wpointer-sign to the fsnotify
code as there are still issues with kstrdup and strlen which would pop
out needless warnings.
Signed-off-by: Eric Paris <eparis@redhat.com>
Diffstat (limited to 'include/linux')
| -rw-r--r-- | include/linux/fsnotify.h | 12 | ||||
| -rw-r--r-- | include/linux/fsnotify_backend.h | 9 |
2 files changed, 11 insertions, 10 deletions
diff --git a/include/linux/fsnotify.h b/include/linux/fsnotify.h index 06c0e50c796..b8cf161f5a6 100644 --- a/include/linux/fsnotify.h +++ b/include/linux/fsnotify.h | |||
| @@ -59,14 +59,14 @@ static inline void fsnotify_link_count(struct inode *inode) | |||
| 59 | * fsnotify_move - file old_name at old_dir was moved to new_name at new_dir | 59 | * fsnotify_move - file old_name at old_dir was moved to new_name at new_dir |
| 60 | */ | 60 | */ |
| 61 | static inline void fsnotify_move(struct inode *old_dir, struct inode *new_dir, | 61 | static inline void fsnotify_move(struct inode *old_dir, struct inode *new_dir, |
| 62 | const char *old_name, | 62 | const unsigned char *old_name, |
| 63 | int isdir, struct inode *target, struct dentry *moved) | 63 | int isdir, struct inode *target, struct dentry *moved) |
| 64 | { | 64 | { |
| 65 | struct inode *source = moved->d_inode; | 65 | struct inode *source = moved->d_inode; |
| 66 | u32 fs_cookie = fsnotify_get_cookie(); | 66 | u32 fs_cookie = fsnotify_get_cookie(); |
| 67 | __u32 old_dir_mask = (FS_EVENT_ON_CHILD | FS_MOVED_FROM); | 67 | __u32 old_dir_mask = (FS_EVENT_ON_CHILD | FS_MOVED_FROM); |
| 68 | __u32 new_dir_mask = (FS_EVENT_ON_CHILD | FS_MOVED_TO); | 68 | __u32 new_dir_mask = (FS_EVENT_ON_CHILD | FS_MOVED_TO); |
| 69 | const char *new_name = moved->d_name.name; | 69 | const unsigned char *new_name = moved->d_name.name; |
| 70 | 70 | ||
| 71 | if (old_dir == new_dir) | 71 | if (old_dir == new_dir) |
| 72 | old_dir_mask |= FS_DN_RENAME; | 72 | old_dir_mask |= FS_DN_RENAME; |
| @@ -290,7 +290,7 @@ static inline void fsnotify_change(struct dentry *dentry, unsigned int ia_valid) | |||
| 290 | /* | 290 | /* |
| 291 | * fsnotify_oldname_init - save off the old filename before we change it | 291 | * fsnotify_oldname_init - save off the old filename before we change it |
| 292 | */ | 292 | */ |
| 293 | static inline const char *fsnotify_oldname_init(const char *name) | 293 | static inline const unsigned char *fsnotify_oldname_init(const unsigned char *name) |
| 294 | { | 294 | { |
| 295 | return kstrdup(name, GFP_KERNEL); | 295 | return kstrdup(name, GFP_KERNEL); |
| 296 | } | 296 | } |
| @@ -298,19 +298,19 @@ static inline const char *fsnotify_oldname_init(const char *name) | |||
| 298 | /* | 298 | /* |
| 299 | * fsnotify_oldname_free - free the name we got from fsnotify_oldname_init | 299 | * fsnotify_oldname_free - free the name we got from fsnotify_oldname_init |
| 300 | */ | 300 | */ |
| 301 | static inline void fsnotify_oldname_free(const char *old_name) | 301 | static inline void fsnotify_oldname_free(const unsigned char *old_name) |
| 302 | { | 302 | { |
| 303 | kfree(old_name); | 303 | kfree(old_name); |
| 304 | } | 304 | } |
| 305 | 305 | ||
| 306 | #else /* CONFIG_FSNOTIFY */ | 306 | #else /* CONFIG_FSNOTIFY */ |
| 307 | 307 | ||
| 308 | static inline const char *fsnotify_oldname_init(const char *name) | 308 | static inline const char *fsnotify_oldname_init(const unsigned char *name) |
| 309 | { | 309 | { |
| 310 | return NULL; | 310 | return NULL; |
| 311 | } | 311 | } |
| 312 | 312 | ||
| 313 | static inline void fsnotify_oldname_free(const char *old_name) | 313 | static inline void fsnotify_oldname_free(const unsigned char *old_name) |
| 314 | { | 314 | { |
| 315 | } | 315 | } |
| 316 | 316 | ||
diff --git a/include/linux/fsnotify_backend.h b/include/linux/fsnotify_backend.h index afc69019297..efe9ba321cf 100644 --- a/include/linux/fsnotify_backend.h +++ b/include/linux/fsnotify_backend.h | |||
| @@ -220,7 +220,7 @@ struct fsnotify_event { | |||
| 220 | __u32 mask; /* the type of access, bitwise OR for FS_* event types */ | 220 | __u32 mask; /* the type of access, bitwise OR for FS_* event types */ |
| 221 | 221 | ||
| 222 | u32 sync_cookie; /* used to corrolate events, namely inotify mv events */ | 222 | u32 sync_cookie; /* used to corrolate events, namely inotify mv events */ |
| 223 | char *file_name; | 223 | const unsigned char *file_name; |
| 224 | size_t name_len; | 224 | size_t name_len; |
| 225 | struct pid *tgid; | 225 | struct pid *tgid; |
| 226 | 226 | ||
| @@ -283,7 +283,7 @@ struct fsnotify_mark { | |||
| 283 | 283 | ||
| 284 | /* main fsnotify call to send events */ | 284 | /* main fsnotify call to send events */ |
| 285 | extern void fsnotify(struct inode *to_tell, __u32 mask, void *data, int data_is, | 285 | extern void fsnotify(struct inode *to_tell, __u32 mask, void *data, int data_is, |
| 286 | const char *name, u32 cookie); | 286 | const unsigned char *name, u32 cookie); |
| 287 | extern void __fsnotify_parent(struct path *path, struct dentry *dentry, __u32 mask); | 287 | extern void __fsnotify_parent(struct path *path, struct dentry *dentry, __u32 mask); |
| 288 | extern void __fsnotify_inode_delete(struct inode *inode); | 288 | extern void __fsnotify_inode_delete(struct inode *inode); |
| 289 | extern void __fsnotify_vfsmount_delete(struct vfsmount *mnt); | 289 | extern void __fsnotify_vfsmount_delete(struct vfsmount *mnt); |
| @@ -402,7 +402,8 @@ extern void fsnotify_unmount_inodes(struct list_head *list); | |||
| 402 | 402 | ||
| 403 | /* put here because inotify does some weird stuff when destroying watches */ | 403 | /* put here because inotify does some weird stuff when destroying watches */ |
| 404 | extern struct fsnotify_event *fsnotify_create_event(struct inode *to_tell, __u32 mask, | 404 | extern struct fsnotify_event *fsnotify_create_event(struct inode *to_tell, __u32 mask, |
| 405 | void *data, int data_is, const char *name, | 405 | void *data, int data_is, |
| 406 | const unsigned char *name, | ||
| 406 | u32 cookie, gfp_t gfp); | 407 | u32 cookie, gfp_t gfp); |
| 407 | 408 | ||
| 408 | /* fanotify likes to change events after they are on lists... */ | 409 | /* fanotify likes to change events after they are on lists... */ |
| @@ -413,7 +414,7 @@ extern int fsnotify_replace_event(struct fsnotify_event_holder *old_holder, | |||
| 413 | #else | 414 | #else |
| 414 | 415 | ||
| 415 | static inline void fsnotify(struct inode *to_tell, __u32 mask, void *data, int data_is, | 416 | static inline void fsnotify(struct inode *to_tell, __u32 mask, void *data, int data_is, |
| 416 | const char *name, u32 cookie) | 417 | const unsigned char *name, u32 cookie) |
| 417 | {} | 418 | {} |
| 418 | 419 | ||
| 419 | static inline void __fsnotify_parent(struct path *path, struct dentry *dentry, __u32 mask) | 420 | static inline void __fsnotify_parent(struct path *path, struct dentry *dentry, __u32 mask) |
