]> git.ipfire.org Git - ipfire-2.x.git/blobdiff - src/patches/samba/samba-3.2.5-inotify.patch
samba: update to 4.13.0
[ipfire-2.x.git] / src / patches / samba / samba-3.2.5-inotify.patch
diff --git a/src/patches/samba/samba-3.2.5-inotify.patch b/src/patches/samba/samba-3.2.5-inotify.patch
deleted file mode 100644 (file)
index e215f5b..0000000
+++ /dev/null
@@ -1,49 +0,0 @@
-Index: samba-3.6.6/source3/smbd/notify_inotify.c
-===================================================================
---- samba-3.6.6.orig/source3/smbd/notify_inotify.c
-+++ samba-3.6.6/source3/smbd/notify_inotify.c
-@@ -77,6 +77,7 @@ struct inotify_private {
-       struct sys_notify_context *ctx;
-       int fd;
-       struct inotify_watch_context *watches;
-+      bool broken_inotify;    /* Late stop for broken system */
- };
- struct inotify_watch_context {
-@@ -241,8 +242,15 @@ static void inotify_handler(struct event
-         filenames, and thus can't know how much to allocate
-         otherwise
-       */
--      if (ioctl(in->fd, FIONREAD, &bufsize) != 0 || 
--          bufsize == 0) {
-+      if ((ioctl(in->fd, FIONREAD, &bufsize) != 0) && (errno == EACCES)) {
-+              /*
-+               * Workaround for broken system (SELinux policy bug fixed since long but it is always better not to loop on EACCES)
-+               */
-+              TALLOC_FREE(fde);
-+              in->broken_inotify = True;
-+              return;
-+      }
-+      if (bufsize == 0) {
-               DEBUG(0,("No data on inotify fd?!\n"));
-               TALLOC_FREE(fde);
-               return;
-@@ -300,6 +308,7 @@ static NTSTATUS inotify_setup(struct sys
-       }
-       in->ctx = ctx;
-       in->watches = NULL;
-+      in->broken_inotify = False;
-       ctx->private_data = in;
-       talloc_set_destructor(in, inotify_destructor);
-@@ -394,6 +403,10 @@ NTSTATUS inotify_watch(struct sys_notify
-       in = talloc_get_type(ctx->private_data, struct inotify_private);
-+      if (in->broken_inotify) {
-+              return NT_STATUS_OK;
-+      }
-+
-       mask = inotify_map(e);
-       if (mask == 0) {
-               /* this filter can't be handled by inotify */