xref: /linux-6.15/include/linux/fs_stack.h (revision 9afa2fb6)
142cf1193SJosef "Jeff" Sipek #ifndef _LINUX_FS_STACK_H
242cf1193SJosef "Jeff" Sipek #define _LINUX_FS_STACK_H
342cf1193SJosef "Jeff" Sipek 
442cf1193SJosef "Jeff" Sipek /* This file defines generic functions used primarily by stackable
542cf1193SJosef "Jeff" Sipek  * filesystems; none of these functions require i_mutex to be held.
642cf1193SJosef "Jeff" Sipek  */
742cf1193SJosef "Jeff" Sipek 
842cf1193SJosef "Jeff" Sipek #include <linux/fs.h>
942cf1193SJosef "Jeff" Sipek 
1042cf1193SJosef "Jeff" Sipek /* externs for fs/stack.c */
11*9afa2fb6SErez Zadok extern void fsstack_copy_attr_all(struct inode *dest, const struct inode *src);
1242cf1193SJosef "Jeff" Sipek extern void fsstack_copy_inode_size(struct inode *dst, const struct inode *src);
1342cf1193SJosef "Jeff" Sipek 
1442cf1193SJosef "Jeff" Sipek /* inlines */
1542cf1193SJosef "Jeff" Sipek static inline void fsstack_copy_attr_atime(struct inode *dest,
1642cf1193SJosef "Jeff" Sipek 					   const struct inode *src)
1742cf1193SJosef "Jeff" Sipek {
1842cf1193SJosef "Jeff" Sipek 	dest->i_atime = src->i_atime;
1942cf1193SJosef "Jeff" Sipek }
2042cf1193SJosef "Jeff" Sipek 
2142cf1193SJosef "Jeff" Sipek static inline void fsstack_copy_attr_times(struct inode *dest,
2242cf1193SJosef "Jeff" Sipek 					   const struct inode *src)
2342cf1193SJosef "Jeff" Sipek {
2442cf1193SJosef "Jeff" Sipek 	dest->i_atime = src->i_atime;
2542cf1193SJosef "Jeff" Sipek 	dest->i_mtime = src->i_mtime;
2642cf1193SJosef "Jeff" Sipek 	dest->i_ctime = src->i_ctime;
2742cf1193SJosef "Jeff" Sipek }
2842cf1193SJosef "Jeff" Sipek 
2942cf1193SJosef "Jeff" Sipek #endif /* _LINUX_FS_STACK_H */
30