mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-24 12:44:11 +08:00
e81ce42413
Create the routines we need to preallocate space in a temporary ondisk file and then copy the contents of an xfile into the tempfile. The upcoming rtsummary repair feature will construct the contents of a realtime summary file in memory, after which it will want to copy all that into the ondisk temporary file before atomically committing the new rtsummary contents. Signed-off-by: Darrick J. Wong <djwong@kernel.org> Reviewed-by: Christoph Hellwig <hch@lst.de>
44 lines
1.3 KiB
C
44 lines
1.3 KiB
C
// SPDX-License-Identifier: GPL-2.0-or-later
|
|
/*
|
|
* Copyright (c) 2021-2024 Oracle. All Rights Reserved.
|
|
* Author: Darrick J. Wong <djwong@kernel.org>
|
|
*/
|
|
#ifndef __XFS_SCRUB_TEMPFILE_H__
|
|
#define __XFS_SCRUB_TEMPFILE_H__
|
|
|
|
#ifdef CONFIG_XFS_ONLINE_REPAIR
|
|
int xrep_tempfile_create(struct xfs_scrub *sc, uint16_t mode);
|
|
void xrep_tempfile_rele(struct xfs_scrub *sc);
|
|
|
|
bool xrep_tempfile_iolock_nowait(struct xfs_scrub *sc);
|
|
int xrep_tempfile_iolock_polled(struct xfs_scrub *sc);
|
|
void xrep_tempfile_iounlock(struct xfs_scrub *sc);
|
|
|
|
void xrep_tempfile_ilock(struct xfs_scrub *sc);
|
|
bool xrep_tempfile_ilock_nowait(struct xfs_scrub *sc);
|
|
void xrep_tempfile_iunlock(struct xfs_scrub *sc);
|
|
|
|
int xrep_tempfile_prealloc(struct xfs_scrub *sc, xfs_fileoff_t off,
|
|
xfs_filblks_t len);
|
|
|
|
enum xfs_blft;
|
|
|
|
typedef int (*xrep_tempfile_copyin_fn)(struct xfs_scrub *sc,
|
|
struct xfs_buf *bp, void *data);
|
|
|
|
int xrep_tempfile_copyin(struct xfs_scrub *sc, xfs_fileoff_t off,
|
|
xfs_filblks_t len, xrep_tempfile_copyin_fn fn, void *data);
|
|
|
|
int xrep_tempfile_set_isize(struct xfs_scrub *sc, unsigned long long isize);
|
|
|
|
int xrep_tempfile_roll_trans(struct xfs_scrub *sc);
|
|
#else
|
|
static inline void xrep_tempfile_iolock_both(struct xfs_scrub *sc)
|
|
{
|
|
xchk_ilock(sc, XFS_IOLOCK_EXCL);
|
|
}
|
|
# define xrep_tempfile_rele(sc)
|
|
#endif /* CONFIG_XFS_ONLINE_REPAIR */
|
|
|
|
#endif /* __XFS_SCRUB_TEMPFILE_H__ */
|