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 06c0e50c7968..b8cf161f5a6d 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 afc690192972..efe9ba321cf2 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) |