mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-23 12:14:10 +08:00
nilfs2: remove nilfs_cpfile_{get,put}_checkpoint()
All calls to nilfs_cpfile_get_checkpoint() and nilfs_cpfile_put_checkpoint() that call kmap() and kunmap() separately are now gone, so remove these methods. Link: https://lkml.kernel.org/r/20240122140202.6950-15-konishi.ryusuke@gmail.com Signed-off-by: Ryusuke Konishi <konishi.ryusuke@gmail.com> Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
This commit is contained in:
parent
1244a6d7a2
commit
78ce491548
@ -254,92 +254,6 @@ out_sem:
|
||||
return ret;
|
||||
}
|
||||
|
||||
/**
|
||||
* nilfs_cpfile_get_checkpoint - get a checkpoint
|
||||
* @cpfile: inode of checkpoint file
|
||||
* @cno: checkpoint number
|
||||
* @create: create flag
|
||||
* @cpp: pointer to a checkpoint
|
||||
* @bhp: pointer to a buffer head
|
||||
*
|
||||
* Description: nilfs_cpfile_get_checkpoint() acquires the checkpoint
|
||||
* specified by @cno. A new checkpoint will be created if @cno is the current
|
||||
* checkpoint number and @create is nonzero.
|
||||
*
|
||||
* Return Value: On success, 0 is returned, and the checkpoint and the
|
||||
* buffer head of the buffer on which the checkpoint is located are stored in
|
||||
* the place pointed by @cpp and @bhp, respectively. On error, one of the
|
||||
* following negative error codes is returned.
|
||||
*
|
||||
* %-EIO - I/O error.
|
||||
*
|
||||
* %-ENOMEM - Insufficient amount of memory available.
|
||||
*
|
||||
* %-ENOENT - No such checkpoint.
|
||||
*
|
||||
* %-EINVAL - invalid checkpoint.
|
||||
*/
|
||||
int nilfs_cpfile_get_checkpoint(struct inode *cpfile,
|
||||
__u64 cno,
|
||||
int create,
|
||||
struct nilfs_checkpoint **cpp,
|
||||
struct buffer_head **bhp)
|
||||
{
|
||||
struct buffer_head *header_bh, *cp_bh;
|
||||
struct nilfs_cpfile_header *header;
|
||||
struct nilfs_checkpoint *cp;
|
||||
void *kaddr;
|
||||
int ret;
|
||||
|
||||
if (unlikely(cno < 1 || cno > nilfs_mdt_cno(cpfile) ||
|
||||
(cno < nilfs_mdt_cno(cpfile) && create)))
|
||||
return -EINVAL;
|
||||
|
||||
down_write(&NILFS_MDT(cpfile)->mi_sem);
|
||||
|
||||
ret = nilfs_cpfile_get_header_block(cpfile, &header_bh);
|
||||
if (ret < 0)
|
||||
goto out_sem;
|
||||
ret = nilfs_cpfile_get_checkpoint_block(cpfile, cno, create, &cp_bh);
|
||||
if (ret < 0)
|
||||
goto out_header;
|
||||
kaddr = kmap(cp_bh->b_page);
|
||||
cp = nilfs_cpfile_block_get_checkpoint(cpfile, cno, cp_bh, kaddr);
|
||||
if (nilfs_checkpoint_invalid(cp)) {
|
||||
if (!create) {
|
||||
kunmap(cp_bh->b_page);
|
||||
brelse(cp_bh);
|
||||
ret = -ENOENT;
|
||||
goto out_header;
|
||||
}
|
||||
/* a newly-created checkpoint */
|
||||
nilfs_checkpoint_clear_invalid(cp);
|
||||
if (!nilfs_cpfile_is_in_first(cpfile, cno))
|
||||
nilfs_cpfile_block_add_valid_checkpoints(cpfile, cp_bh,
|
||||
kaddr, 1);
|
||||
mark_buffer_dirty(cp_bh);
|
||||
|
||||
kaddr = kmap_atomic(header_bh->b_page);
|
||||
header = nilfs_cpfile_block_get_header(cpfile, header_bh,
|
||||
kaddr);
|
||||
le64_add_cpu(&header->ch_ncheckpoints, 1);
|
||||
kunmap_atomic(kaddr);
|
||||
mark_buffer_dirty(header_bh);
|
||||
nilfs_mdt_mark_dirty(cpfile);
|
||||
}
|
||||
|
||||
if (cpp != NULL)
|
||||
*cpp = cp;
|
||||
*bhp = cp_bh;
|
||||
|
||||
out_header:
|
||||
brelse(header_bh);
|
||||
|
||||
out_sem:
|
||||
up_write(&NILFS_MDT(cpfile)->mi_sem);
|
||||
return ret;
|
||||
}
|
||||
|
||||
/**
|
||||
* nilfs_cpfile_create_checkpoint - create a checkpoint entry on cpfile
|
||||
* @cpfile: checkpoint file inode
|
||||
@ -414,23 +328,6 @@ out_sem:
|
||||
return ret;
|
||||
}
|
||||
|
||||
/**
|
||||
* nilfs_cpfile_put_checkpoint - put a checkpoint
|
||||
* @cpfile: inode of checkpoint file
|
||||
* @cno: checkpoint number
|
||||
* @bh: buffer head
|
||||
*
|
||||
* Description: nilfs_cpfile_put_checkpoint() releases the checkpoint
|
||||
* specified by @cno. @bh must be the buffer head which has been returned by
|
||||
* a previous call to nilfs_cpfile_get_checkpoint() with @cno.
|
||||
*/
|
||||
void nilfs_cpfile_put_checkpoint(struct inode *cpfile, __u64 cno,
|
||||
struct buffer_head *bh)
|
||||
{
|
||||
kunmap(bh->b_page);
|
||||
brelse(bh);
|
||||
}
|
||||
|
||||
/**
|
||||
* nilfs_cpfile_finalize_checkpoint - fill in a checkpoint entry in cpfile
|
||||
* @cpfile: checkpoint file inode
|
||||
|
@ -16,13 +16,9 @@
|
||||
#include <linux/nilfs2_ondisk.h> /* nilfs_inode, nilfs_checkpoint */
|
||||
|
||||
|
||||
int nilfs_cpfile_get_checkpoint(struct inode *, __u64, int,
|
||||
struct nilfs_checkpoint **,
|
||||
struct buffer_head **);
|
||||
int nilfs_cpfile_read_checkpoint(struct inode *cpfile, __u64 cno,
|
||||
struct nilfs_root *root, struct inode *ifile);
|
||||
int nilfs_cpfile_create_checkpoint(struct inode *cpfile, __u64 cno);
|
||||
void nilfs_cpfile_put_checkpoint(struct inode *, __u64, struct buffer_head *);
|
||||
int nilfs_cpfile_finalize_checkpoint(struct inode *cpfile, __u64 cno,
|
||||
struct nilfs_root *root, __u64 blkinc,
|
||||
time64_t ctime, bool minor);
|
||||
|
Loading…
Reference in New Issue
Block a user