2010-11-24 17:28:00

by Lino Sanfilippo

[permalink] [raw]
Subject: [PATCH 2/2] fanotify: Dont try to open a file descriptor for the overflow event


We should not try to open a file descriptor for the overflow event since this
will always fail.

Signed-off-by: Lino Sanfilippo <[email protected]>
---
fs/notify/fanotify/fanotify_user.c | 17 +++++++++++++----
1 files changed, 13 insertions(+), 4 deletions(-)

diff --git a/fs/notify/fanotify/fanotify_user.c b/fs/notify/fanotify/fanotify_user.c
index eddad55..5d2e683 100644
--- a/fs/notify/fanotify/fanotify_user.c
+++ b/fs/notify/fanotify/fanotify_user.c
@@ -121,6 +121,8 @@ static int fill_event_metadata(struct fsnotify_group *group,
struct fanotify_event_metadata *metadata,
struct fsnotify_event *event)
{
+ int ret = 0;
+
pr_debug("%s: group=%p metadata=%p event=%p\n", __func__,
group, metadata, event);

@@ -128,9 +130,15 @@ static int fill_event_metadata(struct fsnotify_group *group,
metadata->vers = FANOTIFY_METADATA_VERSION;
metadata->mask = event->mask & FAN_ALL_OUTGOING_EVENTS;
metadata->pid = pid_vnr(event->tgid);
- metadata->fd = create_fd(group, event);
+ if (unlikely(event->mask & FAN_Q_OVERFLOW))
+ metadata->fd = FAN_NOFD;
+ else {
+ metadata->fd = create_fd(group, event);
+ if (metadata->fd < 0)
+ ret = metadata->fd;
+ }

- return metadata->fd;
+ return ret;
}

#ifdef CONFIG_FANOTIFY_ACCESS_PERMISSIONS
@@ -264,7 +272,7 @@ static ssize_t copy_event_to_user(struct fsnotify_group *group,
if (ret < 0)
goto out;

- fd = ret;
+ fd = fanotify_event_metadata.fd;
ret = prepare_for_access_response(group, event, fd);
if (ret)
goto out_close_fd;
@@ -278,7 +286,8 @@ static ssize_t copy_event_to_user(struct fsnotify_group *group,
out_kill_access_response:
remove_access_response(group, event, fd);
out_close_fd:
- sys_close(fd);
+ if (fd != FAN_NOFD)
+ sys_close(fd);
out:
#ifdef CONFIG_FANOTIFY_ACCESS_PERMISSIONS
if (event->mask & FAN_ALL_PERM_EVENTS) {
--
1.5.6.5


2010-11-29 20:40:39

by Eric Paris

[permalink] [raw]
Subject: Re: [PATCH 2/2] fanotify: Dont try to open a file descriptor for the overflow event

On Wed, 2010-11-24 at 18:26 +0100, Lino Sanfilippo wrote:
> We should not try to open a file descriptor for the overflow event since this
> will always fail.
>
> Signed-off-by: Lino Sanfilippo <[email protected]>

applied to for-next