Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932380AbbGGPD3 (ORCPT ); Tue, 7 Jul 2015 11:03:29 -0400 Received: from iolanthe.rowland.org ([192.131.102.54]:33406 "HELO iolanthe.rowland.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with SMTP id S932366AbbGGPDV (ORCPT ); Tue, 7 Jul 2015 11:03:21 -0400 Date: Tue, 7 Jul 2015 11:03:20 -0400 (EDT) From: Alan Stern X-X-Sender: stern@iolanthe.rowland.org To: Oliver Neukum cc: "Rafael J. Wysocki" , Dave Chinner , Henrique de Moraes Holschuh , Len Brown , Len Brown , One Thousand Gnomes , "linux-kernel@vger.kernel.org" , Linux PM list Subject: Re: [PATCH 1/1] suspend: delete sys_sync() In-Reply-To: <1436279906.2658.4.camel@suse.de> Message-ID: MIME-Version: 1.0 Content-Type: TEXT/PLAIN; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1699 Lines: 36 On Tue, 7 Jul 2015, Oliver Neukum wrote: > > he (or she) pulls the storage device out of the system, moves it to another > > system, makes changes (say removes the file written to by the process above, > > so the blocks previously occupied by that file are now used for some metadata) > > and moves the storage back to the suspended system. The system is resumed > > and the writing process continues writing possibly to the wrong blocks and > > corrupts the filesystem. > > That is a tough nut. But that's not a reason to make it worse. > I'd say there's no reason not to use a secondary interface to > suspend without syncing or to extend or introduce such an interface > if the API is deficient. Indeed, the problem Rafael outlined always exists whether or not the kernel does a sync. Even if no I/O is in progress when the system goes to sleep, if the user moves a portable storage device with a mounted filesystem to another computer and updates it before waking the system up, corruption is highly likely. In principle this could be solved by adding suspend/resume callbacks to filesystems. For example, the resume callback could verify that the superblock had not been changed since the suspend occurred. Or there could be some other simple way of determining that the filesystem had not been remounted and changed. Either way, this is irrelevant to the question of whether the kernel should issue a sync when suspending. Alan Stern -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/