From mboxrd@z Thu Jan 1 00:00:00 1970 From: Amit Sahrawat Subject: Issue with lazy umount and closing file descriptor in between Date: Tue, 6 Sep 2011 22:56:41 +0530 Message-ID: Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 To: linux-kernel@vger.kernel.org, linux-fsdevel@vger.kernel.org Return-path: Received: from mail-fx0-f46.google.com ([209.85.161.46]:33893 "EHLO mail-fx0-f46.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752852Ab1IFR0n (ORCPT ); Tue, 6 Sep 2011 13:26:43 -0400 Sender: linux-fsdevel-owner@vger.kernel.org List-ID: We have observed below issues in busybox umount: 1. force umount (umount -f): it does not work as expected. 2. lazy umount(umount -l): it detaches the mount point but waits for current mount point users(processes) to finish. Corruption happens when we powerdown, while lazy umount is waiting for a process to finish. (e.g. #dd if=/dev/zero of=/mnt/test.txt ). What could be the ideal way so as to avoid file system corruption in above scenario? Is it fine to close all open file descriptors on umount system call before attempting umount? But this results in OOPS in certain situations like: 1. User app issue a write/read request 2. Write reaches in kernel space but sleeps for some time e.g. it is not available in dentry cache. 3. In the meanwhile, we issue umount. This will close open file descriptor, free file/dentry object and then umount. 4. Now write wakes up and finds NULL file/dentry object and triggers oops. Please offer some advice on this issue. Thanks & Regards, Amit Sahrawat