xref: /linux-6.15/include/linux/fs_stack.h (revision 1f693269)
1b2441318SGreg Kroah-Hartman /* SPDX-License-Identifier: GPL-2.0 */
242cf1193SJosef "Jeff" Sipek #ifndef _LINUX_FS_STACK_H
342cf1193SJosef "Jeff" Sipek #define _LINUX_FS_STACK_H
442cf1193SJosef "Jeff" Sipek 
542cf1193SJosef "Jeff" Sipek /* This file defines generic functions used primarily by stackable
642cf1193SJosef "Jeff" Sipek  * filesystems; none of these functions require i_mutex to be held.
742cf1193SJosef "Jeff" Sipek  */
842cf1193SJosef "Jeff" Sipek 
942cf1193SJosef "Jeff" Sipek #include <linux/fs.h>
1042cf1193SJosef "Jeff" Sipek 
1142cf1193SJosef "Jeff" Sipek /* externs for fs/stack.c */
129afa2fb6SErez Zadok extern void fsstack_copy_attr_all(struct inode *dest, const struct inode *src);
131b8ab815SErez Zadok extern void fsstack_copy_inode_size(struct inode *dst, struct inode *src);
1442cf1193SJosef "Jeff" Sipek 
1542cf1193SJosef "Jeff" Sipek /* inlines */
fsstack_copy_attr_atime(struct inode * dest,const struct inode * src)1642cf1193SJosef "Jeff" Sipek static inline void fsstack_copy_attr_atime(struct inode *dest,
1742cf1193SJosef "Jeff" Sipek 					   const struct inode *src)
1842cf1193SJosef "Jeff" Sipek {
19*1f693269SJeff Layton 	inode_set_atime_to_ts(dest, inode_get_atime(src));
2042cf1193SJosef "Jeff" Sipek }
2142cf1193SJosef "Jeff" Sipek 
fsstack_copy_attr_times(struct inode * dest,const struct inode * src)2242cf1193SJosef "Jeff" Sipek static inline void fsstack_copy_attr_times(struct inode *dest,
2342cf1193SJosef "Jeff" Sipek 					   const struct inode *src)
2442cf1193SJosef "Jeff" Sipek {
25*1f693269SJeff Layton 	inode_set_atime_to_ts(dest, inode_get_atime(src));
26*1f693269SJeff Layton 	inode_set_mtime_to_ts(dest, inode_get_mtime(src));
27e359147fSJeff Layton 	inode_set_ctime_to_ts(dest, inode_get_ctime(src));
2842cf1193SJosef "Jeff" Sipek }
2942cf1193SJosef "Jeff" Sipek 
3042cf1193SJosef "Jeff" Sipek #endif /* _LINUX_FS_STACK_H */
31