From patchwork Tue Sep 29 01:14:38 2015 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Mike Frysinger X-Patchwork-Id: 523672 Return-Path: X-Original-To: patchwork-incoming@ozlabs.org Delivered-To: patchwork-incoming@ozlabs.org Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 4839B1402B0 for ; Tue, 29 Sep 2015 11:16:08 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753686AbbI2BOr (ORCPT ); Mon, 28 Sep 2015 21:14:47 -0400 Received: from smtp.gentoo.org ([140.211.166.183]:42320 "EHLO smtp.gentoo.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1753129AbbI2BOq (ORCPT ); Mon, 28 Sep 2015 21:14:46 -0400 Received: from localhost.localdomain (localhost [127.0.0.1]) by smtp.gentoo.org (Postfix) with ESMTP id 03B7B3403C1 for ; Tue, 29 Sep 2015 01:14:40 +0000 (UTC) From: Mike Frysinger To: linux-ext4@vger.kernel.org Subject: [PATCH v2 e2fsprogs] subst: use 0644 perms Date: Mon, 28 Sep 2015 21:14:38 -0400 Message-Id: <1443489278-6435-1-git-send-email-vapier@gentoo.org> X-Mailer: git-send-email 2.5.2 In-Reply-To: <1442562858-862-1-git-send-email-vapier@gentoo.org> References: <1442562858-862-1-git-send-email-vapier@gentoo.org> Sender: linux-ext4-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-ext4@vger.kernel.org When running on NFS, opening files with 0444 perms for writing can sometimes fail. Delay the permission update until the end (which restores behavior to pre-commit 2873927d15ffb9ee9ed0e2700791a0e5). URL: https://bugs.gentoo.org/550986 Signed-off-by: Mike Frysinger --- util/subst.c | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/util/subst.c b/util/subst.c index f36adb4..10ad6b9 100644 --- a/util/subst.c +++ b/util/subst.c @@ -370,7 +370,7 @@ int main(int argc, char **argv) } strcpy(newfn, outfn); strcat(newfn, ".new"); - fd = open(newfn, O_CREAT|O_TRUNC|O_RDWR, 0444); + fd = open(newfn, O_CREAT|O_TRUNC|O_RDWR, 0644); if (fd < 0) { perror(newfn); exit(1); @@ -443,6 +443,11 @@ int main(int argc, char **argv) perror("rename"); exit(1); } + /* set read-only to alert user it is a generated file */ + if (chmod(outfn, 0444)) { + perror("chmod"); + exit(1); + } } } if (old)