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 */ 1642cf1193SJosef "Jeff" Sipek static inline void fsstack_copy_attr_atime(struct inode *dest, 1742cf1193SJosef "Jeff" Sipek const struct inode *src) 1842cf1193SJosef "Jeff" Sipek { 1942cf1193SJosef "Jeff" Sipek dest->i_atime = src->i_atime; 2042cf1193SJosef "Jeff" Sipek } 2142cf1193SJosef "Jeff" Sipek 2242cf1193SJosef "Jeff" Sipek static inline void fsstack_copy_attr_times(struct inode *dest, 2342cf1193SJosef "Jeff" Sipek const struct inode *src) 2442cf1193SJosef "Jeff" Sipek { 2542cf1193SJosef "Jeff" Sipek dest->i_atime = src->i_atime; 2642cf1193SJosef "Jeff" Sipek dest->i_mtime = src->i_mtime; 27*e359147fSJeff 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