From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: To: akpm@linux-foundation.org, jack@suse.cz, mgorman@techsingularity.net, ak@linux.intel.com, mawilcox@microsoft.com, viro@zeniv.linux.org.uk, mawilcox@microsoft.com, ross.zwisler@linux.intel.com Cc: linux-mm@kvack.org, linux-kernel@vger.kernel.org, linux-fsdevel From: Jia-Ju Bai Subject: [BUG] mm: truncate: a possible sleep-in-atomic-context bug in truncate_exceptional_pvec_entries() Message-ID: Date: Mon, 13 Aug 2018 11:10:23 +0800 MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: 7bit Content-Language: en-US Sender: owner-linux-mm@kvack.org List-ID: The kernel may sleep with holding a spinlock. The function call paths (from bottom to top) in Linux-4.16 are: [FUNC] schedule fs/dax.c, 259: schedule in get_unlocked_mapping_entry fs/dax.c, 450: get_unlocked_mapping_entry in __dax_invalidate_mapping_entry fs/dax.c, 471: __dax_invalidate_mapping_entry in dax_delete_mapping_entry mm/truncate.c, 97: dax_delete_mapping_entry in truncate_exceptional_pvec_entries mm/truncate.c, 82: spin_lock_irq in truncate_exceptional_pvec_entries I do not find a good way to fix, so I only report. This is found by my static analysis tool (DSAC). Thanks, Jia-Ju Bai