Skip to content

Commit

Permalink
inotify: do not send a block of zeros when no pathname is available
Browse files Browse the repository at this point in the history
When an event has no pathname, there's no need to pad it with a null byte and
therefore generate an inotify_event sized block of zeros. This fixes a
regression introduced by commit 0db501b where
my system wouldn't finish booting because some process was being confused by
this.

Signed-off-by: Brian Rogers <brian@xyzw.org>
Signed-off-by: Eric Paris <eparis@redhat.com>
  • Loading branch information
Brian Rogers authored and Eric Paris committed Aug 28, 2009
1 parent 326ba50 commit b962e73
Showing 1 changed file with 5 additions and 3 deletions.
8 changes: 5 additions & 3 deletions fs/notify/inotify/inotify_user.c
Original file line number Diff line number Diff line change
Expand Up @@ -180,7 +180,7 @@ static ssize_t copy_event_to_user(struct fsnotify_group *group,
struct fsnotify_event_private_data *fsn_priv;
struct inotify_event_private_data *priv;
size_t event_size = sizeof(struct inotify_event);
size_t name_len;
size_t name_len = 0;

/* we get the inotify watch descriptor from the event private data */
spin_lock(&event->lock);
Expand All @@ -196,10 +196,12 @@ static ssize_t copy_event_to_user(struct fsnotify_group *group,
inotify_free_event_priv(fsn_priv);
}

/* round up event->name_len so it is a multiple of event_size
/*
* round up event->name_len so it is a multiple of event_size
* plus an extra byte for the terminating '\0'.
*/
name_len = roundup(event->name_len + 1, event_size);
if (event->name_len)
name_len = roundup(event->name_len + 1, event_size);
inotify_event.len = name_len;

inotify_event.mask = inotify_mask_to_arg(event->mask);
Expand Down

0 comments on commit b962e73

Please sign in to comment.