forked from ~ljy/RK356X_SDK_RELEASE

hc
2023-12-09 95099d4622f8cb224d94e314c7a8e0df60b13f87
kernel/fs/nilfs2/ioctl.c
....@@ -148,13 +148,8 @@
148148
149149 oldflags = NILFS_I(inode)->i_flags;
150150
151
- /*
152
- * The IMMUTABLE and APPEND_ONLY flags can only be changed by the
153
- * relevant capability.
154
- */
155
- ret = -EPERM;
156
- if (((flags ^ oldflags) & (FS_APPEND_FL | FS_IMMUTABLE_FL)) &&
157
- !capable(CAP_LINUX_IMMUTABLE))
151
+ ret = vfs_ioc_setflags_prepare(inode, oldflags, flags);
152
+ if (ret)
158153 goto out;
159154
160155 ret = nilfs_transaction_begin(inode->i_sb, &ti, 0);
....@@ -574,25 +569,25 @@
574569
575570 if (unlikely(ret < 0)) {
576571 if (ret == -ENOENT)
577
- nilfs_msg(inode->i_sb, KERN_CRIT,
578
- "%s: invalid virtual block address (%s): ino=%llu, cno=%llu, offset=%llu, blocknr=%llu, vblocknr=%llu",
579
- __func__, vdesc->vd_flags ? "node" : "data",
580
- (unsigned long long)vdesc->vd_ino,
581
- (unsigned long long)vdesc->vd_cno,
582
- (unsigned long long)vdesc->vd_offset,
583
- (unsigned long long)vdesc->vd_blocknr,
584
- (unsigned long long)vdesc->vd_vblocknr);
572
+ nilfs_crit(inode->i_sb,
573
+ "%s: invalid virtual block address (%s): ino=%llu, cno=%llu, offset=%llu, blocknr=%llu, vblocknr=%llu",
574
+ __func__, vdesc->vd_flags ? "node" : "data",
575
+ (unsigned long long)vdesc->vd_ino,
576
+ (unsigned long long)vdesc->vd_cno,
577
+ (unsigned long long)vdesc->vd_offset,
578
+ (unsigned long long)vdesc->vd_blocknr,
579
+ (unsigned long long)vdesc->vd_vblocknr);
585580 return ret;
586581 }
587582 if (unlikely(!list_empty(&bh->b_assoc_buffers))) {
588
- nilfs_msg(inode->i_sb, KERN_CRIT,
589
- "%s: conflicting %s buffer: ino=%llu, cno=%llu, offset=%llu, blocknr=%llu, vblocknr=%llu",
590
- __func__, vdesc->vd_flags ? "node" : "data",
591
- (unsigned long long)vdesc->vd_ino,
592
- (unsigned long long)vdesc->vd_cno,
593
- (unsigned long long)vdesc->vd_offset,
594
- (unsigned long long)vdesc->vd_blocknr,
595
- (unsigned long long)vdesc->vd_vblocknr);
583
+ nilfs_crit(inode->i_sb,
584
+ "%s: conflicting %s buffer: ino=%llu, cno=%llu, offset=%llu, blocknr=%llu, vblocknr=%llu",
585
+ __func__, vdesc->vd_flags ? "node" : "data",
586
+ (unsigned long long)vdesc->vd_ino,
587
+ (unsigned long long)vdesc->vd_cno,
588
+ (unsigned long long)vdesc->vd_offset,
589
+ (unsigned long long)vdesc->vd_blocknr,
590
+ (unsigned long long)vdesc->vd_vblocknr);
596591 brelse(bh);
597592 return -EEXIST;
598593 }
....@@ -842,8 +837,7 @@
842837 return 0;
843838
844839 failed:
845
- nilfs_msg(nilfs->ns_sb, KERN_ERR, "error %d preparing GC: %s", ret,
846
- msg);
840
+ nilfs_err(nilfs->ns_sb, "error %d preparing GC: %s", ret, msg);
847841 return ret;
848842 }
849843
....@@ -952,7 +946,7 @@
952946
953947 ret = nilfs_ioctl_move_blocks(inode->i_sb, &argv[0], kbufs[0]);
954948 if (ret < 0) {
955
- nilfs_msg(inode->i_sb, KERN_ERR,
949
+ nilfs_err(inode->i_sb,
956950 "error %d preparing GC: cannot read source blocks",
957951 ret);
958952 } else {
....@@ -1359,6 +1353,7 @@
13591353 case NILFS_IOCTL_SYNC:
13601354 case NILFS_IOCTL_RESIZE:
13611355 case NILFS_IOCTL_SET_ALLOC_RANGE:
1356
+ case FITRIM:
13621357 break;
13631358 default:
13641359 return -ENOIOCTLCMD;