Patch "fsnotify: fix sb_connectors leak" has been added to the 5.10-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    fsnotify: fix sb_connectors leak

to the 5.10-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     fsnotify-fix-sb_connectors-leak.patch
and it can be found in the queue-5.10 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 2809833b1d3549beffc675c72385db7ec16cb0a6
Author: Amir Goldstein <amir73il@xxxxxxxxx>
Date:   Thu Sep 9 14:56:34 2021 +0300

    fsnotify: fix sb_connectors leak
    
    [ Upstream commit 4396a73115fc8739083536162e2228c0c0c3ed1a ]
    
    Fix a leak in s_fsnotify_connectors counter in case of a race between
    concurrent add of new fsnotify mark to an object.
    
    The task that lost the race fails to drop the counter before freeing
    the unused connector.
    
    Following umount() hangs in fsnotify_sb_delete()/wait_var_event(),
    because s_fsnotify_connectors never drops to zero.
    
    Fixes: ec44610fe2b8 ("fsnotify: count all objects with attached connectors")
    Reported-by: Murphy Zhou <jencce.kernel@xxxxxxxxx>
    Link: https://lore.kernel.org/linux-fsdevel/20210907063338.ycaw6wvhzrfsfdlp@xxxxxxxxxxxxxxxxxxxxxxxxx/
    Signed-off-by: Amir Goldstein <amir73il@xxxxxxxxx>
    Signed-off-by: Linus Torvalds <torvalds@xxxxxxxxxxxxxxxxxxxx>
    Signed-off-by: Chuck Lever <chuck.lever@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/fs/notify/mark.c b/fs/notify/mark.c
index 796946eb0c2e2..bea106fac0901 100644
--- a/fs/notify/mark.c
+++ b/fs/notify/mark.c
@@ -531,6 +531,7 @@ static int fsnotify_attach_connector_to_object(fsnotify_connp_t *connp,
 		/* Someone else created list structure for us */
 		if (inode)
 			fsnotify_put_inode_ref(inode);
+		fsnotify_put_sb_connectors(conn);
 		kmem_cache_free(fsnotify_mark_connector_cachep, conn);
 	}
 




[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux