Unverified Commit 11068e0b authored by Christian Brauner's avatar Christian Brauner
Browse files

fs: remove f_version

Now that detecting concurrent seeks is done by the filesystems that
require it we can remove f_version and free up 8 bytes for future
extensions.

Link: https://lore.kernel.org/r/20240830-vfs-file-f_version-v1-20-6d3e4816aa7b@kernel.org


Reviewed-by: default avatarJan Kara <jack@suse.cz>
Reviewed-by: default avatarJeff Layton <jlayton@kernel.org>
Signed-off-by: default avatarChristian Brauner <brauner@kernel.org>
parent 5a957bba
Loading
Loading
Loading
Loading
+4 −5
Original line number Diff line number Diff line
@@ -62,6 +62,7 @@ static loff_t vfs_setpos_cookie(struct file *file, loff_t offset,

	if (offset != file->f_pos) {
		file->f_pos = offset;
		if (cookie)
			*cookie = 0;
	}
	return offset;
@@ -81,7 +82,7 @@ static loff_t vfs_setpos_cookie(struct file *file, loff_t offset,
 */
loff_t vfs_setpos(struct file *file, loff_t offset, loff_t maxsize)
{
	return vfs_setpos_cookie(file, offset, maxsize, &file->f_version);
	return vfs_setpos_cookie(file, offset, maxsize, NULL);
}
EXPORT_SYMBOL(vfs_setpos);

@@ -364,10 +365,8 @@ loff_t default_llseek(struct file *file, loff_t offset, int whence)
	}
	retval = -EINVAL;
	if (offset >= 0 || unsigned_offsets(file)) {
		if (offset != file->f_pos) {
		if (offset != file->f_pos)
			file->f_pos = offset;
			file->f_version = 0;
		}
		retval = offset;
	}
out:
+1 −3
Original line number Diff line number Diff line
@@ -1003,7 +1003,6 @@ static inline int ra_has_index(struct file_ra_state *ra, pgoff_t index)
 * @f_pos_lock: lock protecting file position
 * @f_pipe: specific to pipes
 * @f_pos: file position
 * @f_version: file version
 * @f_security: LSM security context of this file
 * @f_owner: file owner
 * @f_wb_err: writeback error
@@ -1034,11 +1033,10 @@ struct file {
		u64			f_pipe;
	};
	loff_t				f_pos;
	u64				f_version;
	/* --- cacheline 2 boundary (128 bytes) --- */
#ifdef CONFIG_SECURITY
	void				*f_security;
#endif
	/* --- cacheline 2 boundary (128 bytes) --- */
	struct fown_struct		*f_owner;
	errseq_t			f_wb_err;
	errseq_t			f_sb_err;