mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
synced 2025-01-04 04:04:19 +00:00
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: Jan Kara <jack@suse.cz> Reviewed-by: Jeff Layton <jlayton@kernel.org> Signed-off-by: Christian Brauner <brauner@kernel.org>
This commit is contained in:
parent
5a957bbac3
commit
11068e0b64
@ -62,6 +62,7 @@ static loff_t vfs_setpos_cookie(struct file *file, loff_t offset,
|
|||||||
|
|
||||||
if (offset != file->f_pos) {
|
if (offset != file->f_pos) {
|
||||||
file->f_pos = offset;
|
file->f_pos = offset;
|
||||||
|
if (cookie)
|
||||||
*cookie = 0;
|
*cookie = 0;
|
||||||
}
|
}
|
||||||
return offset;
|
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)
|
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);
|
EXPORT_SYMBOL(vfs_setpos);
|
||||||
|
|
||||||
@ -364,10 +365,8 @@ loff_t default_llseek(struct file *file, loff_t offset, int whence)
|
|||||||
}
|
}
|
||||||
retval = -EINVAL;
|
retval = -EINVAL;
|
||||||
if (offset >= 0 || unsigned_offsets(file)) {
|
if (offset >= 0 || unsigned_offsets(file)) {
|
||||||
if (offset != file->f_pos) {
|
if (offset != file->f_pos)
|
||||||
file->f_pos = offset;
|
file->f_pos = offset;
|
||||||
file->f_version = 0;
|
|
||||||
}
|
|
||||||
retval = offset;
|
retval = offset;
|
||||||
}
|
}
|
||||||
out:
|
out:
|
||||||
|
@ -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_pos_lock: lock protecting file position
|
||||||
* @f_pipe: specific to pipes
|
* @f_pipe: specific to pipes
|
||||||
* @f_pos: file position
|
* @f_pos: file position
|
||||||
* @f_version: file version
|
|
||||||
* @f_security: LSM security context of this file
|
* @f_security: LSM security context of this file
|
||||||
* @f_owner: file owner
|
* @f_owner: file owner
|
||||||
* @f_wb_err: writeback error
|
* @f_wb_err: writeback error
|
||||||
@ -1034,11 +1033,10 @@ struct file {
|
|||||||
u64 f_pipe;
|
u64 f_pipe;
|
||||||
};
|
};
|
||||||
loff_t f_pos;
|
loff_t f_pos;
|
||||||
u64 f_version;
|
|
||||||
/* --- cacheline 2 boundary (128 bytes) --- */
|
|
||||||
#ifdef CONFIG_SECURITY
|
#ifdef CONFIG_SECURITY
|
||||||
void *f_security;
|
void *f_security;
|
||||||
#endif
|
#endif
|
||||||
|
/* --- cacheline 2 boundary (128 bytes) --- */
|
||||||
struct fown_struct *f_owner;
|
struct fown_struct *f_owner;
|
||||||
errseq_t f_wb_err;
|
errseq_t f_wb_err;
|
||||||
errseq_t f_sb_err;
|
errseq_t f_sb_err;
|
||||||
|
Loading…
Reference in New Issue
Block a user