Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id ; Mon, 30 Jul 2001 13:12:57 -0400 Received: (majordomo@vger.kernel.org) by vger.kernel.org id ; Mon, 30 Jul 2001 13:12:47 -0400 Received: from ACAP-DEV.NAS.CMU.EDU ([128.2.6.63]:26884 "EHLO acap-dev.nas.cmu.edu") by vger.kernel.org with ESMTP id ; Mon, 30 Jul 2001 13:12:34 -0400 Date: Mon, 30 Jul 2001 13:11:32 -0400 Message-Id: <200107301711.f6UHBWHE001945@acap-dev.nas.cmu.edu> From: Lawrence Greenfield X-Mailer: BatIMail version 3.2 To: Rik van Riel , "Patrick J. LoPresti" Cc: linux-kernel@vger.kernel.org, Alan Cox , Chris Wedgwood , Chris Mason In-Reply-To: Subject: Re: ext3-2.4-0.9.4 In-Reply-To: Mime-Version: 1.0 (generated by tm-edit 7.106) Content-Type: text/plain; charset=US-ASCII Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Original-Recipient: rfc822;linux-kernel-outgoing From: "Patrick J. LoPresti" Date: 30 Jul 2001 12:46:13 -0400 > Besides BSD softupdates and the various journaling > filesystems which are in use on other Unixen also > don't provide the 4.3BSD solution any more ... This surprises me if it is true; do you have a reference? And what mechanism *do* the modern BSDs provide to commit metadata changes to disk? BSD softupdates allows you to call fsync() on the file, and this will sync the directories all the way up to the root if necessary. Thus BSD fsync() actually guarantees that when it returns, the file (and all of it's filenames) will survive a reboot. Sendmail does: fd = open(tmp) write(fd) fsync(fd) rename(tmp, final) fsync(fd) Cyrus IMAP does: fd = open(tmp) write(fd) fsync(fd) link(tmp, final1) link(tmp, final2) link(tmp, final3) fsync(fd) close(fd) unlink(tmp) The idea that Linux fsync() doesn't actually make the file survive reboots is pretty ridiculous. Larry - 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/