All of lore.kernel.org
 help / color / mirror / Atom feed
From: Chandan Babu R <chandan.babu@oracle.com>
To: gregkh@linuxfoundation.org
Cc: sashal@kernel.org, mcgrof@kernel.org, linux-xfs@vger.kernel.org,
	stable@vger.kernel.org, djwong@kernel.org,
	chandan.babu@oracle.com, amir73il@gmail.com,
	leah.rumancik@gmail.com
Subject: [PATCH 5.4 12/17] xfs: set inode size after creating symlink
Date: Wed, 12 Apr 2023 09:56:19 +0530	[thread overview]
Message-ID: <20230412042624.600511-13-chandan.babu@oracle.com> (raw)
In-Reply-To: <20230412042624.600511-1-chandan.babu@oracle.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>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Signed-off-by: Chandan Babu R <chandan.babu@oracle.com>
Acked-by: Darrick J. Wong <djwong@kernel.org>
---
 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 3312820700f3..a2037e22ebda 100644
--- a/fs/xfs/xfs_symlink.c
+++ b/fs/xfs/xfs_symlink.c
@@ -314,6 +314,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.39.1


  parent reply	other threads:[~2023-04-12  4:29 UTC|newest]

Thread overview: 26+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2023-04-12  4:26 [PATCH 5.4 00/17] xfs stable candidate patches for 5.4.y (from v5.11 & v5.12) Chandan Babu R
2023-04-12  4:26 ` [PATCH 5.4 01/17] xfs: show the proper user quota options Chandan Babu R
2023-04-12  4:26 ` [PATCH 5.4 02/17] xfs: merge the projid fields in struct xfs_icdinode Chandan Babu R
2023-04-12  4:26 ` [PATCH 5.4 03/17] xfs: ensure that the inode uid/gid match values match the icdinode ones Chandan Babu R
2023-04-12  4:26 ` [PATCH 5.4 04/17] xfs: remove the icdinode di_uid/di_gid members Chandan Babu R
2023-04-12  4:26 ` [PATCH 5.4 05/17] xfs: remove the kuid/kgid conversion wrappers Chandan Babu R
2023-04-12  4:26 ` [PATCH 5.4 06/17] xfs: add a new xfs_sb_version_has_v3inode helper Chandan Babu R
2023-04-12  4:26 ` [PATCH 5.4 07/17] xfs: only check the superblock version for dinode size calculation Chandan Babu R
2023-04-12  4:26 ` [PATCH 5.4 08/17] xfs: simplify di_flags2 inheritance in xfs_ialloc Chandan Babu R
2023-04-12  4:26 ` [PATCH 5.4 09/17] xfs: simplify a check in xfs_ioctl_setattr_check_cowextsize Chandan Babu R
2023-04-12  4:29   ` kernel test robot
2023-04-12  4:36     ` Chandan Babu R
2023-04-12  4:47       ` Philip Li
2023-04-12  4:50         ` Chandan Babu R
2023-04-12  5:08   ` [PATCH 5.4 V2] " Chandan Babu R
2023-04-12  4:26 ` [PATCH 5.4 10/17] xfs: remove the di_version field from struct icdinode Chandan Babu R
2023-04-12  4:26 ` [PATCH 5.4 11/17] xfs: fix up non-directory creation in SGID directories Chandan Babu R
2023-04-12  4:26 ` Chandan Babu R [this message]
2023-04-12  4:26 ` [PATCH 5.4 13/17] xfs: report corruption only as a regular error Chandan Babu R
2023-04-12  4:26 ` [PATCH 5.4 14/17] xfs: shut down the filesystem if we screw up quota reservation Chandan Babu R
2023-04-12  4:26 ` [PATCH 5.4 15/17] xfs: consider shutdown in bmapbt cursor delete assert Chandan Babu R
2023-04-12  4:26 ` [PATCH 5.4 16/17] xfs: don't reuse busy extents on extent trim Chandan Babu R
2023-04-12  4:26 ` [PATCH 5.4 17/17] xfs: force log and push AIL to clear pinned inodes when aborting mount Chandan Babu R
2023-04-18  9:49 ` [PATCH 5.4 00/17] xfs stable candidate patches for 5.4.y (from v5.11 & v5.12) Greg KH
2023-04-18 10:53   ` Greg KH
2023-04-18 12:39     ` Chandan Babu R

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=20230412042624.600511-13-chandan.babu@oracle.com \
    --to=chandan.babu@oracle.com \
    --cc=amir73il@gmail.com \
    --cc=djwong@kernel.org \
    --cc=gregkh@linuxfoundation.org \
    --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.