lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20230706145442.3ycggpvtwez7hz5s@quack3>
Date:   Thu, 6 Jul 2023 16:54:42 +0200
From:   Jan Kara <jack@...e.cz>
To:     Jeff Layton <jlayton@...nel.org>
Cc:     Christian Brauner <brauner@...nel.org>,
        Al Viro <viro@...iv.linux.org.uk>, Jan Kara <jack@...e.cz>,
        linux-fsdevel@...r.kernel.org, linux-kernel@...r.kernel.org
Subject: Re: [PATCH v2 85/92] mqueue: convert to ctime accessor functions

On Wed 05-07-23 15:01:50, Jeff Layton wrote:
> In later patches, we're going to change how the inode's ctime field is
> used. Switch to using accessor functions instead of raw accesses of
> inode->i_ctime.
> 
> Signed-off-by: Jeff Layton <jlayton@...nel.org>

Looks good. Feel free to add:

Reviewed-by: Jan Kara <jack@...e.cz>

								Honza

> ---
>  ipc/mqueue.c | 23 +++++++++++------------
>  1 file changed, 11 insertions(+), 12 deletions(-)
> 
> diff --git a/ipc/mqueue.c b/ipc/mqueue.c
> index 71881bddad25..ba8215ed663a 100644
> --- a/ipc/mqueue.c
> +++ b/ipc/mqueue.c
> @@ -302,7 +302,7 @@ static struct inode *mqueue_get_inode(struct super_block *sb,
>  	inode->i_mode = mode;
>  	inode->i_uid = current_fsuid();
>  	inode->i_gid = current_fsgid();
> -	inode->i_mtime = inode->i_ctime = inode->i_atime = current_time(inode);
> +	inode->i_mtime = inode->i_atime = inode_set_ctime_current(inode);
>  
>  	if (S_ISREG(mode)) {
>  		struct mqueue_inode_info *info;
> @@ -596,7 +596,7 @@ static int mqueue_create_attr(struct dentry *dentry, umode_t mode, void *arg)
>  
>  	put_ipc_ns(ipc_ns);
>  	dir->i_size += DIRENT_SIZE;
> -	dir->i_ctime = dir->i_mtime = dir->i_atime = current_time(dir);
> +	dir->i_mtime = dir->i_atime = inode_set_ctime_current(dir);
>  
>  	d_instantiate(dentry, inode);
>  	dget(dentry);
> @@ -618,7 +618,7 @@ static int mqueue_unlink(struct inode *dir, struct dentry *dentry)
>  {
>  	struct inode *inode = d_inode(dentry);
>  
> -	dir->i_ctime = dir->i_mtime = dir->i_atime = current_time(dir);
> +	dir->i_mtime = dir->i_atime = inode_set_ctime_current(dir);
>  	dir->i_size -= DIRENT_SIZE;
>  	drop_nlink(inode);
>  	dput(dentry);
> @@ -635,7 +635,8 @@ static int mqueue_unlink(struct inode *dir, struct dentry *dentry)
>  static ssize_t mqueue_read_file(struct file *filp, char __user *u_data,
>  				size_t count, loff_t *off)
>  {
> -	struct mqueue_inode_info *info = MQUEUE_I(file_inode(filp));
> +	struct inode *inode = file_inode(filp);
> +	struct mqueue_inode_info *info = MQUEUE_I(inode);
>  	char buffer[FILENT_SIZE];
>  	ssize_t ret;
>  
> @@ -656,7 +657,7 @@ static ssize_t mqueue_read_file(struct file *filp, char __user *u_data,
>  	if (ret <= 0)
>  		return ret;
>  
> -	file_inode(filp)->i_atime = file_inode(filp)->i_ctime = current_time(file_inode(filp));
> +	inode->i_atime = inode_set_ctime_current(inode);
>  	return ret;
>  }
>  
> @@ -1162,8 +1163,7 @@ static int do_mq_timedsend(mqd_t mqdes, const char __user *u_msg_ptr,
>  				goto out_unlock;
>  			__do_notify(info);
>  		}
> -		inode->i_atime = inode->i_mtime = inode->i_ctime =
> -				current_time(inode);
> +		inode->i_atime = inode->i_mtime = inode_set_ctime_current(inode);
>  	}
>  out_unlock:
>  	spin_unlock(&info->lock);
> @@ -1257,8 +1257,7 @@ static int do_mq_timedreceive(mqd_t mqdes, char __user *u_msg_ptr,
>  
>  		msg_ptr = msg_get(info);
>  
> -		inode->i_atime = inode->i_mtime = inode->i_ctime =
> -				current_time(inode);
> +		inode->i_atime = inode->i_mtime = inode_set_ctime_current(inode);
>  
>  		/* There is now free space in queue. */
>  		pipelined_receive(&wake_q, info);
> @@ -1396,7 +1395,7 @@ static int do_mq_notify(mqd_t mqdes, const struct sigevent *notification)
>  	if (notification == NULL) {
>  		if (info->notify_owner == task_tgid(current)) {
>  			remove_notification(info);
> -			inode->i_atime = inode->i_ctime = current_time(inode);
> +			inode->i_atime = inode_set_ctime_current(inode);
>  		}
>  	} else if (info->notify_owner != NULL) {
>  		ret = -EBUSY;
> @@ -1422,7 +1421,7 @@ static int do_mq_notify(mqd_t mqdes, const struct sigevent *notification)
>  
>  		info->notify_owner = get_pid(task_tgid(current));
>  		info->notify_user_ns = get_user_ns(current_user_ns());
> -		inode->i_atime = inode->i_ctime = current_time(inode);
> +		inode->i_atime = inode_set_ctime_current(inode);
>  	}
>  	spin_unlock(&info->lock);
>  out_fput:
> @@ -1485,7 +1484,7 @@ static int do_mq_getsetattr(int mqdes, struct mq_attr *new, struct mq_attr *old)
>  			f.file->f_flags &= ~O_NONBLOCK;
>  		spin_unlock(&f.file->f_lock);
>  
> -		inode->i_atime = inode->i_ctime = current_time(inode);
> +		inode->i_atime = inode_set_ctime_current(inode);
>  	}
>  
>  	spin_unlock(&info->lock);
> -- 
> 2.41.0
> 
-- 
Jan Kara <jack@...e.com>
SUSE Labs, CR

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ