All of lore.kernel.org
 help / color / mirror / Atom feed
From: Amir Goldstein <amir73il@gmail.com>
To: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: Sasha Levin <sashal@kernel.org>,
	Dave Chinner <david@fromorbit.com>,
	"Darrick J . Wong" <djwong@kernel.org>,
	Christoph Hellwig <hch@lst.de>, Brian Foster <bfoster@redhat.com>,
	Christian Brauner <brauner@kernel.org>,
	Luis Chamberlain <mcgrof@kernel.org>,
	Leah Rumancik <leah.rumancik@gmail.com>,
	Adam Manzanares <a.manzanares@samsung.com>,
	linux-xfs@vger.kernel.org, stable@vger.kernel.org,
	Jeffrey Mitchell <jeffrey.mitchell@starlab.io>
Subject: [PATCH 5.10 v2 1/8] xfs: set inode size after creating symlink
Date: Mon,  6 Jun 2022 17:32:48 +0300	[thread overview]
Message-ID: <20220606143255.685988-2-amir73il@gmail.com> (raw)
In-Reply-To: <20220606143255.685988-1-amir73il@gmail.com>

From: Jeffrey Mitchell <jeffrey.mitchell@starlab.io>

commit 8aa921a95335d0a8c8e2be35a44467e7c91ec3e4 upstream.

When XFS creates a new symlink, it writes its size to disk but not to the
VFS inode. This causes i_size_read() to return 0 for that symlink until
it is re-read from disk, for example when the system is rebooted.

I found this inconsistency while protecting directories with eCryptFS.
The command "stat path/to/symlink/in/ecryptfs" will report "Size: 0" if
the symlink was created after the last reboot on an XFS root.

Call i_size_write() in xfs_symlink()

Signed-off-by: Jeffrey Mitchell <jeffrey.mitchell@starlab.io>
Reviewed-by: Darrick J. Wong <djwong@kernel.org>
Signed-off-by: Darrick J. Wong <djwong@kernel.org>
Reviewed-by: Christoph Hellwig <hch@lst.de>
Reviewed-by: Brian Foster <bfoster@redhat.com>
Signed-off-by: Amir Goldstein <amir73il@gmail.com>
---
 fs/xfs/xfs_symlink.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/fs/xfs/xfs_symlink.c b/fs/xfs/xfs_symlink.c
index 8e88a7ca387e..8d3abf06c54f 100644
--- a/fs/xfs/xfs_symlink.c
+++ b/fs/xfs/xfs_symlink.c
@@ -300,6 +300,7 @@ xfs_symlink(
 		}
 		ASSERT(pathlen == 0);
 	}
+	i_size_write(VFS_I(ip), ip->i_d.di_size);
 
 	/*
 	 * Create the directory entry for the symlink.
-- 
2.25.1


  reply	other threads:[~2022-06-06 14:33 UTC|newest]

Thread overview: 19+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-06-06 14:32 [PATCH 5.10 v2 0/8] xfs fixes for 5.10.y (part 2) Amir Goldstein
2022-06-06 14:32 ` Amir Goldstein [this message]
2022-06-06 14:32 ` [PATCH 5.10 v2 2/8] xfs: sync lazy sb accounting on quiesce of read-only mounts Amir Goldstein
2022-06-06 14:32 ` [PATCH 5.10 v2 3/8] xfs: fix chown leaking delalloc quota blocks when fssetxattr fails Amir Goldstein
2022-06-06 14:32 ` [PATCH 5.10 v2 4/8] xfs: fix incorrect root dquot corruption error when switching group/project quota types Amir Goldstein
2022-06-06 14:32 ` [PATCH 5.10 v2 5/8] xfs: restore shutdown check in mapped write fault path Amir Goldstein
2022-06-06 14:32 ` [PATCH 5.10 v2 6/8] xfs: force log and push AIL to clear pinned inodes when aborting mount Amir Goldstein
2022-06-06 14:32 ` [PATCH 5.10 v2 7/8] xfs: consider shutdown in bmapbt cursor delete assert Amir Goldstein
2022-06-06 14:32 ` [PATCH 5.10 v2 8/8] xfs: assert in xfs_btree_del_cursor should take into account error Amir Goldstein
2022-06-06 21:30   ` Dave Chinner
2022-06-06 22:33     ` Amir Goldstein
2022-06-07  3:01       ` Dave Chinner
2022-06-07  4:47         ` Greg Kroah-Hartman
2022-06-07  4:56           ` Amir Goldstein
2022-06-07  6:09         ` Amir Goldstein
2022-06-07 18:35           ` Darrick J. Wong
2022-06-07 19:12             ` Luis Chamberlain
2022-06-08  4:37             ` XFS stable maintenance (Was: Re: [PATCH 5.10 v2 8/8] xfs: assert in xfs_btree_del_cursor should take into account error) Amir Goldstein
2022-06-06 17:01 ` [PATCH 5.10 v2 0/8] xfs fixes for 5.10.y (part 2) Greg Kroah-Hartman

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=20220606143255.685988-2-amir73il@gmail.com \
    --to=amir73il@gmail.com \
    --cc=a.manzanares@samsung.com \
    --cc=bfoster@redhat.com \
    --cc=brauner@kernel.org \
    --cc=david@fromorbit.com \
    --cc=djwong@kernel.org \
    --cc=gregkh@linuxfoundation.org \
    --cc=hch@lst.de \
    --cc=jeffrey.mitchell@starlab.io \
    --cc=leah.rumancik@gmail.com \
    --cc=linux-xfs@vger.kernel.org \
    --cc=mcgrof@kernel.org \
    --cc=sashal@kernel.org \
    --cc=stable@vger.kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.