Received: by 2002:ac0:a5a6:0:0:0:0:0 with SMTP id m35-v6csp521220imm; Fri, 14 Sep 2018 02:07:20 -0700 (PDT) X-Google-Smtp-Source: ANB0VdYA1QeZNeKOr8M0XttHAGcx6IRLdOEqFWw+d8IVi4YEPkLMgRh9bOIgfZuU3XK9IpWX8aMK X-Received: by 2002:a63:c046:: with SMTP id z6-v6mr10890719pgi.114.1536916040894; Fri, 14 Sep 2018 02:07:20 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1536916040; cv=none; d=google.com; s=arc-20160816; b=k0YiG9KTK1FqO/55+hiCgttPUW6UBRR4YR9U4cOYxy6GCcdr8EE0LoWTSRODYMFoX2 EBE/tp6I6VWdBsd1f33k9GuqBzjXDc6j90gkw2XIaRgJHpQjHW3Y2RhF9eXwY3LdBhai 5b56RJ6Dbh+4xb7f6/sdqCPT3l1jhMFjgsZtZTx9y/tvvT9fnU9+tc7YZiEjqCNRjbXV UTLqT0ZJTXQCtxMZ+ybnYp1SLfOEJ6ZQQb8WF0tZyKb8m6bIrosZBlz2GgOfK9gGSE4r 7cTXdJD7MQgQKftLX/D0cIvXnkN1bzElWbF2kwYE5R8rM7+I1V7EL+y2WGbbr0lCxeLL JMVw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :mime-version:dkim-signature; bh=1bkKxS2Yw3/LD52o6gHxSDeq6fym5N2PzqrAFFJPcuA=; b=KWDYvTWQLGnE9TfkN70R7+FgkRXFG6CZa/N1dGI6ymvgwst4BRqCtgza5N+6lX1+xZ 2D1Zmez7fBUR/WprS5cT9Q7P3ohZdxlkGWCt7bg0X1pupUl1fsbhQjG1YhKexCnrasyf 1ASsWXvh8JmZrzMNNzsPiarqzXDZyxyKPvhtAwNsU9ZSJkIGJbNc8lBaisEmjg7hdYVp Ca2jk/3u3u7baFRNTPIU5BBLjio4vxqEAmSzz9gmQ6AeTZQW1WO1nTkubizcnYPMALtg ZK51n4MhtvpoiHo0WWlwWv41qmOBcV8aslAgjjSGfnubkGv76u6RKkw29m9F0i2m2pLE BQRQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=kJfLN0gg; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id e14-v6si6586007pgj.413.2018.09.14.02.07.05; Fri, 14 Sep 2018 02:07:20 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@gmail.com header.s=20161025 header.b=kJfLN0gg; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=NONE sp=QUARANTINE dis=NONE) header.from=gmail.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728023AbeINOU3 (ORCPT + 99 others); Fri, 14 Sep 2018 10:20:29 -0400 Received: from mail-ot1-f50.google.com ([209.85.210.50]:33217 "EHLO mail-ot1-f50.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726883AbeINOU3 (ORCPT ); Fri, 14 Sep 2018 10:20:29 -0400 Received: by mail-ot1-f50.google.com with SMTP id i10-v6so3896690oth.0; Fri, 14 Sep 2018 02:06:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=mime-version:from:date:message-id:subject:to:cc; bh=1bkKxS2Yw3/LD52o6gHxSDeq6fym5N2PzqrAFFJPcuA=; b=kJfLN0gg0IbP261IXhu1PTp67JP8rshPMKCn+H/tthS0kVzbbITX+3VKX7/6vjSHjk ux8N1MFkMpFuMTI/qSjj7cs4uj4tduCvA58aDH8P1otd93eM8UP2nC5umqMbUBE1/dk2 d52vuytQzwkPO1QkmFNctuqV6VYOIPztVS25CGPP4c06Ch2dWIT8RaLJCIos2/YSoPkX 54ShNrKJB+wyJ6SDTGW5x+4C4zKxR34g+7juO3Hxi6CsdNLTopzvajHjnZsSsjTpmLFS 7yb2YiAQKOhO7ec7IPimvaJkqZbJtWgCkedVTs6sz6UMgysrVc8ol0B4nqeGZ6YjqD45 dX+A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:from:date:message-id:subject:to:cc; bh=1bkKxS2Yw3/LD52o6gHxSDeq6fym5N2PzqrAFFJPcuA=; b=lTNLDUVc42KrQDaXnv/iq+Aojn4rTHcgNrPE0PIFFpBL0ECzquDdvvhUukLOZdr7Ov hUxBx10QAQqONTBr5MBhSni+ZTmJ0HlyxCMNkTwqaG1+KlVVdSA8VXYZ+6+HaonG71HJ qrvuHH5gts4CteNOQ42PSL0MIUO/bFhrg8ROB7tlnSFcns3RJuXBebbmgPtoc5rHhh+8 TNitVZ9d/IMeQLJChWIgUi1hyROfdq6HMpj3xpab7eB93FaF2rYoVkJdOcztxjip1RJy GsUjAIu1V+xTU3TTgCXwLEoWX66v7WtSvw4gvX6rtW63eVuajek4WGPKk/SYEsdwRatS aCog== X-Gm-Message-State: APzg51B2qrx8emiOIhGuCGBsrjH4lJriDR2RVn7kQJg4NkWHKDoHcCfo Q2+02cjjlMQRzL17My9k9lZhWSaq9KW0LTU0fPfjMaJh40QlrA== X-Received: by 2002:a9d:30d1:: with SMTP id r17-v6mr3909822otg.182.1536916015314; Fri, 14 Sep 2018 02:06:55 -0700 (PDT) MIME-Version: 1.0 From: =?UTF-8?B?54Sm5pmT5Yas?= Date: Fri, 14 Sep 2018 17:06:44 +0800 Message-ID: Subject: metadata operation reordering regards to crash To: linux-fsdevel@vger.kernel.org, linux-ext4@vger.kernel.org, adilger.kernel@dilger.ca Cc: linux-kernel@vger.kernel.org Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi, all, A probably bit of complex question: Does nowadays practical filesystems, eg., extX, btfs, preserve metadata operation order through a crash/power failure? What I know is modern filesystems ensure metadata consistency after crash/power failure. Journal filesystems like extX do that by write-ahead logging of metadata operations into transactions. Other filesystems do that in various ways as btfs do that by COW. What I'm not so far clear is whether these filesystems preserve metadata operation order after a crash. For example, op 1. rename(A, B) op 2. rename(C, D) As mentioned above, metadata consistency is ensured after a crash. Thus, B is either the original B(or not exists) or has been replaced by A. The same to D. Is it possible that, after a crash, D has been replaced by C but B is still the original file(or not exists)? Or, from the view of implementation, before the crash - in a journal filesystem, Is the atomic transaction `rename(C, D)` permitted to be written to disk journal before the transaction `rename(A, B)`? - in other filesystems, say btfs, Is it permit to reorder `rename(C,D)` and `rename(A,B)` atomic operation hiting disk? The question is meaningful as many applications do that: if (flag_file_says_need_generate_data) { open_write_sync_close(data_tmp); rename(data_tmp, data); open_write_sync_close(flag_file_tmp, no_need_to_generate_data); rename(flag_file_tmp, flag_file) } use_data_file() If flag is here but data is not after a crash, that is a problem. Thanks, Trol