thread1 thread2 open pipe open pipe close() -> pipecommon_close() -> check inode refs -> do NOT free dev close() -> pipecommon_close() -> check inode refs -> do NOT free dev -> inode_release inode refs-- -> inode_release inode refs-- Then, you will see the pipe hasn't free its resource, memleak Resolve: replace the inode refs with priv refs Signed-off-by: ligd <liguiding1@xiaomi.com>