|
@@ -218,11 +218,11 @@ int nilfs_cpfile_get_checkpoint(struct inode *cpfile,
|
|
|
kaddr, 1);
|
|
|
mark_buffer_dirty(cp_bh);
|
|
|
|
|
|
- kaddr = kmap_atomic(header_bh->b_page, KM_USER0);
|
|
|
+ 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, KM_USER0);
|
|
|
+ kunmap_atomic(kaddr);
|
|
|
mark_buffer_dirty(header_bh);
|
|
|
nilfs_mdt_mark_dirty(cpfile);
|
|
|
}
|
|
@@ -313,7 +313,7 @@ int nilfs_cpfile_delete_checkpoints(struct inode *cpfile,
|
|
|
continue;
|
|
|
}
|
|
|
|
|
|
- kaddr = kmap_atomic(cp_bh->b_page, KM_USER0);
|
|
|
+ kaddr = kmap_atomic(cp_bh->b_page);
|
|
|
cp = nilfs_cpfile_block_get_checkpoint(
|
|
|
cpfile, cno, cp_bh, kaddr);
|
|
|
nicps = 0;
|
|
@@ -334,7 +334,7 @@ int nilfs_cpfile_delete_checkpoints(struct inode *cpfile,
|
|
|
cpfile, cp_bh, kaddr, nicps);
|
|
|
if (count == 0) {
|
|
|
/* make hole */
|
|
|
- kunmap_atomic(kaddr, KM_USER0);
|
|
|
+ kunmap_atomic(kaddr);
|
|
|
brelse(cp_bh);
|
|
|
ret =
|
|
|
nilfs_cpfile_delete_checkpoint_block(
|
|
@@ -349,18 +349,18 @@ int nilfs_cpfile_delete_checkpoints(struct inode *cpfile,
|
|
|
}
|
|
|
}
|
|
|
|
|
|
- kunmap_atomic(kaddr, KM_USER0);
|
|
|
+ kunmap_atomic(kaddr);
|
|
|
brelse(cp_bh);
|
|
|
}
|
|
|
|
|
|
if (tnicps > 0) {
|
|
|
- kaddr = kmap_atomic(header_bh->b_page, KM_USER0);
|
|
|
+ kaddr = kmap_atomic(header_bh->b_page);
|
|
|
header = nilfs_cpfile_block_get_header(cpfile, header_bh,
|
|
|
kaddr);
|
|
|
le64_add_cpu(&header->ch_ncheckpoints, -(u64)tnicps);
|
|
|
mark_buffer_dirty(header_bh);
|
|
|
nilfs_mdt_mark_dirty(cpfile);
|
|
|
- kunmap_atomic(kaddr, KM_USER0);
|
|
|
+ kunmap_atomic(kaddr);
|
|
|
}
|
|
|
|
|
|
brelse(header_bh);
|
|
@@ -408,7 +408,7 @@ static ssize_t nilfs_cpfile_do_get_cpinfo(struct inode *cpfile, __u64 *cnop,
|
|
|
continue; /* skip hole */
|
|
|
}
|
|
|
|
|
|
- kaddr = kmap_atomic(bh->b_page, KM_USER0);
|
|
|
+ kaddr = kmap_atomic(bh->b_page);
|
|
|
cp = nilfs_cpfile_block_get_checkpoint(cpfile, cno, bh, kaddr);
|
|
|
for (i = 0; i < ncps && n < nci; i++, cp = (void *)cp + cpsz) {
|
|
|
if (!nilfs_checkpoint_invalid(cp)) {
|
|
@@ -418,7 +418,7 @@ static ssize_t nilfs_cpfile_do_get_cpinfo(struct inode *cpfile, __u64 *cnop,
|
|
|
n++;
|
|
|
}
|
|
|
}
|
|
|
- kunmap_atomic(kaddr, KM_USER0);
|
|
|
+ kunmap_atomic(kaddr);
|
|
|
brelse(bh);
|
|
|
}
|
|
|
|
|
@@ -451,10 +451,10 @@ static ssize_t nilfs_cpfile_do_get_ssinfo(struct inode *cpfile, __u64 *cnop,
|
|
|
ret = nilfs_cpfile_get_header_block(cpfile, &bh);
|
|
|
if (ret < 0)
|
|
|
goto out;
|
|
|
- kaddr = kmap_atomic(bh->b_page, KM_USER0);
|
|
|
+ kaddr = kmap_atomic(bh->b_page);
|
|
|
header = nilfs_cpfile_block_get_header(cpfile, bh, kaddr);
|
|
|
curr = le64_to_cpu(header->ch_snapshot_list.ssl_next);
|
|
|
- kunmap_atomic(kaddr, KM_USER0);
|
|
|
+ kunmap_atomic(kaddr);
|
|
|
brelse(bh);
|
|
|
if (curr == 0) {
|
|
|
ret = 0;
|
|
@@ -472,7 +472,7 @@ static ssize_t nilfs_cpfile_do_get_ssinfo(struct inode *cpfile, __u64 *cnop,
|
|
|
ret = 0; /* No snapshots (started from a hole block) */
|
|
|
goto out;
|
|
|
}
|
|
|
- kaddr = kmap_atomic(bh->b_page, KM_USER0);
|
|
|
+ kaddr = kmap_atomic(bh->b_page);
|
|
|
while (n < nci) {
|
|
|
cp = nilfs_cpfile_block_get_checkpoint(cpfile, curr, bh, kaddr);
|
|
|
curr = ~(__u64)0; /* Terminator */
|
|
@@ -488,7 +488,7 @@ static ssize_t nilfs_cpfile_do_get_ssinfo(struct inode *cpfile, __u64 *cnop,
|
|
|
|
|
|
next_blkoff = nilfs_cpfile_get_blkoff(cpfile, next);
|
|
|
if (curr_blkoff != next_blkoff) {
|
|
|
- kunmap_atomic(kaddr, KM_USER0);
|
|
|
+ kunmap_atomic(kaddr);
|
|
|
brelse(bh);
|
|
|
ret = nilfs_cpfile_get_checkpoint_block(cpfile, next,
|
|
|
0, &bh);
|
|
@@ -496,12 +496,12 @@ static ssize_t nilfs_cpfile_do_get_ssinfo(struct inode *cpfile, __u64 *cnop,
|
|
|
WARN_ON(ret == -ENOENT);
|
|
|
goto out;
|
|
|
}
|
|
|
- kaddr = kmap_atomic(bh->b_page, KM_USER0);
|
|
|
+ kaddr = kmap_atomic(bh->b_page);
|
|
|
}
|
|
|
curr = next;
|
|
|
curr_blkoff = next_blkoff;
|
|
|
}
|
|
|
- kunmap_atomic(kaddr, KM_USER0);
|
|
|
+ kunmap_atomic(kaddr);
|
|
|
brelse(bh);
|
|
|
*cnop = curr;
|
|
|
ret = n;
|
|
@@ -592,24 +592,24 @@ static int nilfs_cpfile_set_snapshot(struct inode *cpfile, __u64 cno)
|
|
|
ret = nilfs_cpfile_get_checkpoint_block(cpfile, cno, 0, &cp_bh);
|
|
|
if (ret < 0)
|
|
|
goto out_sem;
|
|
|
- kaddr = kmap_atomic(cp_bh->b_page, KM_USER0);
|
|
|
+ kaddr = kmap_atomic(cp_bh->b_page);
|
|
|
cp = nilfs_cpfile_block_get_checkpoint(cpfile, cno, cp_bh, kaddr);
|
|
|
if (nilfs_checkpoint_invalid(cp)) {
|
|
|
ret = -ENOENT;
|
|
|
- kunmap_atomic(kaddr, KM_USER0);
|
|
|
+ kunmap_atomic(kaddr);
|
|
|
goto out_cp;
|
|
|
}
|
|
|
if (nilfs_checkpoint_snapshot(cp)) {
|
|
|
ret = 0;
|
|
|
- kunmap_atomic(kaddr, KM_USER0);
|
|
|
+ kunmap_atomic(kaddr);
|
|
|
goto out_cp;
|
|
|
}
|
|
|
- kunmap_atomic(kaddr, KM_USER0);
|
|
|
+ kunmap_atomic(kaddr);
|
|
|
|
|
|
ret = nilfs_cpfile_get_header_block(cpfile, &header_bh);
|
|
|
if (ret < 0)
|
|
|
goto out_cp;
|
|
|
- kaddr = kmap_atomic(header_bh->b_page, KM_USER0);
|
|
|
+ kaddr = kmap_atomic(header_bh->b_page);
|
|
|
header = nilfs_cpfile_block_get_header(cpfile, header_bh, kaddr);
|
|
|
list = &header->ch_snapshot_list;
|
|
|
curr_bh = header_bh;
|
|
@@ -621,13 +621,13 @@ static int nilfs_cpfile_set_snapshot(struct inode *cpfile, __u64 cno)
|
|
|
prev_blkoff = nilfs_cpfile_get_blkoff(cpfile, prev);
|
|
|
curr = prev;
|
|
|
if (curr_blkoff != prev_blkoff) {
|
|
|
- kunmap_atomic(kaddr, KM_USER0);
|
|
|
+ kunmap_atomic(kaddr);
|
|
|
brelse(curr_bh);
|
|
|
ret = nilfs_cpfile_get_checkpoint_block(cpfile, curr,
|
|
|
0, &curr_bh);
|
|
|
if (ret < 0)
|
|
|
goto out_header;
|
|
|
- kaddr = kmap_atomic(curr_bh->b_page, KM_USER0);
|
|
|
+ kaddr = kmap_atomic(curr_bh->b_page);
|
|
|
}
|
|
|
curr_blkoff = prev_blkoff;
|
|
|
cp = nilfs_cpfile_block_get_checkpoint(
|
|
@@ -635,7 +635,7 @@ static int nilfs_cpfile_set_snapshot(struct inode *cpfile, __u64 cno)
|
|
|
list = &cp->cp_snapshot_list;
|
|
|
prev = le64_to_cpu(list->ssl_prev);
|
|
|
}
|
|
|
- kunmap_atomic(kaddr, KM_USER0);
|
|
|
+ kunmap_atomic(kaddr);
|
|
|
|
|
|
if (prev != 0) {
|
|
|
ret = nilfs_cpfile_get_checkpoint_block(cpfile, prev, 0,
|
|
@@ -647,29 +647,29 @@ static int nilfs_cpfile_set_snapshot(struct inode *cpfile, __u64 cno)
|
|
|
get_bh(prev_bh);
|
|
|
}
|
|
|
|
|
|
- kaddr = kmap_atomic(curr_bh->b_page, KM_USER0);
|
|
|
+ kaddr = kmap_atomic(curr_bh->b_page);
|
|
|
list = nilfs_cpfile_block_get_snapshot_list(
|
|
|
cpfile, curr, curr_bh, kaddr);
|
|
|
list->ssl_prev = cpu_to_le64(cno);
|
|
|
- kunmap_atomic(kaddr, KM_USER0);
|
|
|
+ kunmap_atomic(kaddr);
|
|
|
|
|
|
- kaddr = kmap_atomic(cp_bh->b_page, KM_USER0);
|
|
|
+ kaddr = kmap_atomic(cp_bh->b_page);
|
|
|
cp = nilfs_cpfile_block_get_checkpoint(cpfile, cno, cp_bh, kaddr);
|
|
|
cp->cp_snapshot_list.ssl_next = cpu_to_le64(curr);
|
|
|
cp->cp_snapshot_list.ssl_prev = cpu_to_le64(prev);
|
|
|
nilfs_checkpoint_set_snapshot(cp);
|
|
|
- kunmap_atomic(kaddr, KM_USER0);
|
|
|
+ kunmap_atomic(kaddr);
|
|
|
|
|
|
- kaddr = kmap_atomic(prev_bh->b_page, KM_USER0);
|
|
|
+ kaddr = kmap_atomic(prev_bh->b_page);
|
|
|
list = nilfs_cpfile_block_get_snapshot_list(
|
|
|
cpfile, prev, prev_bh, kaddr);
|
|
|
list->ssl_next = cpu_to_le64(cno);
|
|
|
- kunmap_atomic(kaddr, KM_USER0);
|
|
|
+ kunmap_atomic(kaddr);
|
|
|
|
|
|
- kaddr = kmap_atomic(header_bh->b_page, KM_USER0);
|
|
|
+ kaddr = kmap_atomic(header_bh->b_page);
|
|
|
header = nilfs_cpfile_block_get_header(cpfile, header_bh, kaddr);
|
|
|
le64_add_cpu(&header->ch_nsnapshots, 1);
|
|
|
- kunmap_atomic(kaddr, KM_USER0);
|
|
|
+ kunmap_atomic(kaddr);
|
|
|
|
|
|
mark_buffer_dirty(prev_bh);
|
|
|
mark_buffer_dirty(curr_bh);
|
|
@@ -710,23 +710,23 @@ static int nilfs_cpfile_clear_snapshot(struct inode *cpfile, __u64 cno)
|
|
|
ret = nilfs_cpfile_get_checkpoint_block(cpfile, cno, 0, &cp_bh);
|
|
|
if (ret < 0)
|
|
|
goto out_sem;
|
|
|
- kaddr = kmap_atomic(cp_bh->b_page, KM_USER0);
|
|
|
+ kaddr = kmap_atomic(cp_bh->b_page);
|
|
|
cp = nilfs_cpfile_block_get_checkpoint(cpfile, cno, cp_bh, kaddr);
|
|
|
if (nilfs_checkpoint_invalid(cp)) {
|
|
|
ret = -ENOENT;
|
|
|
- kunmap_atomic(kaddr, KM_USER0);
|
|
|
+ kunmap_atomic(kaddr);
|
|
|
goto out_cp;
|
|
|
}
|
|
|
if (!nilfs_checkpoint_snapshot(cp)) {
|
|
|
ret = 0;
|
|
|
- kunmap_atomic(kaddr, KM_USER0);
|
|
|
+ kunmap_atomic(kaddr);
|
|
|
goto out_cp;
|
|
|
}
|
|
|
|
|
|
list = &cp->cp_snapshot_list;
|
|
|
next = le64_to_cpu(list->ssl_next);
|
|
|
prev = le64_to_cpu(list->ssl_prev);
|
|
|
- kunmap_atomic(kaddr, KM_USER0);
|
|
|
+ kunmap_atomic(kaddr);
|
|
|
|
|
|
ret = nilfs_cpfile_get_header_block(cpfile, &header_bh);
|
|
|
if (ret < 0)
|
|
@@ -750,29 +750,29 @@ static int nilfs_cpfile_clear_snapshot(struct inode *cpfile, __u64 cno)
|
|
|
get_bh(prev_bh);
|
|
|
}
|
|
|
|
|
|
- kaddr = kmap_atomic(next_bh->b_page, KM_USER0);
|
|
|
+ kaddr = kmap_atomic(next_bh->b_page);
|
|
|
list = nilfs_cpfile_block_get_snapshot_list(
|
|
|
cpfile, next, next_bh, kaddr);
|
|
|
list->ssl_prev = cpu_to_le64(prev);
|
|
|
- kunmap_atomic(kaddr, KM_USER0);
|
|
|
+ kunmap_atomic(kaddr);
|
|
|
|
|
|
- kaddr = kmap_atomic(prev_bh->b_page, KM_USER0);
|
|
|
+ kaddr = kmap_atomic(prev_bh->b_page);
|
|
|
list = nilfs_cpfile_block_get_snapshot_list(
|
|
|
cpfile, prev, prev_bh, kaddr);
|
|
|
list->ssl_next = cpu_to_le64(next);
|
|
|
- kunmap_atomic(kaddr, KM_USER0);
|
|
|
+ kunmap_atomic(kaddr);
|
|
|
|
|
|
- kaddr = kmap_atomic(cp_bh->b_page, KM_USER0);
|
|
|
+ kaddr = kmap_atomic(cp_bh->b_page);
|
|
|
cp = nilfs_cpfile_block_get_checkpoint(cpfile, cno, cp_bh, kaddr);
|
|
|
cp->cp_snapshot_list.ssl_next = cpu_to_le64(0);
|
|
|
cp->cp_snapshot_list.ssl_prev = cpu_to_le64(0);
|
|
|
nilfs_checkpoint_clear_snapshot(cp);
|
|
|
- kunmap_atomic(kaddr, KM_USER0);
|
|
|
+ kunmap_atomic(kaddr);
|
|
|
|
|
|
- kaddr = kmap_atomic(header_bh->b_page, KM_USER0);
|
|
|
+ kaddr = kmap_atomic(header_bh->b_page);
|
|
|
header = nilfs_cpfile_block_get_header(cpfile, header_bh, kaddr);
|
|
|
le64_add_cpu(&header->ch_nsnapshots, -1);
|
|
|
- kunmap_atomic(kaddr, KM_USER0);
|
|
|
+ kunmap_atomic(kaddr);
|
|
|
|
|
|
mark_buffer_dirty(next_bh);
|
|
|
mark_buffer_dirty(prev_bh);
|
|
@@ -829,13 +829,13 @@ int nilfs_cpfile_is_snapshot(struct inode *cpfile, __u64 cno)
|
|
|
ret = nilfs_cpfile_get_checkpoint_block(cpfile, cno, 0, &bh);
|
|
|
if (ret < 0)
|
|
|
goto out;
|
|
|
- kaddr = kmap_atomic(bh->b_page, KM_USER0);
|
|
|
+ kaddr = kmap_atomic(bh->b_page);
|
|
|
cp = nilfs_cpfile_block_get_checkpoint(cpfile, cno, bh, kaddr);
|
|
|
if (nilfs_checkpoint_invalid(cp))
|
|
|
ret = -ENOENT;
|
|
|
else
|
|
|
ret = nilfs_checkpoint_snapshot(cp);
|
|
|
- kunmap_atomic(kaddr, KM_USER0);
|
|
|
+ kunmap_atomic(kaddr);
|
|
|
brelse(bh);
|
|
|
|
|
|
out:
|
|
@@ -912,12 +912,12 @@ int nilfs_cpfile_get_stat(struct inode *cpfile, struct nilfs_cpstat *cpstat)
|
|
|
ret = nilfs_cpfile_get_header_block(cpfile, &bh);
|
|
|
if (ret < 0)
|
|
|
goto out_sem;
|
|
|
- kaddr = kmap_atomic(bh->b_page, KM_USER0);
|
|
|
+ kaddr = kmap_atomic(bh->b_page);
|
|
|
header = nilfs_cpfile_block_get_header(cpfile, bh, kaddr);
|
|
|
cpstat->cs_cno = nilfs_mdt_cno(cpfile);
|
|
|
cpstat->cs_ncps = le64_to_cpu(header->ch_ncheckpoints);
|
|
|
cpstat->cs_nsss = le64_to_cpu(header->ch_nsnapshots);
|
|
|
- kunmap_atomic(kaddr, KM_USER0);
|
|
|
+ kunmap_atomic(kaddr);
|
|
|
brelse(bh);
|
|
|
|
|
|
out_sem:
|