From: kernel test robot <lkp@intel.com>
To: Hongling Zeng <zenghongling@kylinos.cn>,
linkinjeon@kernel.org, hyc.lee@gmail.com, charsyam@gmail.com
Cc: oe-kbuild-all@lists.linux.dev, linux-fsdevel@vger.kernel.org,
linux-kernel@vger.kernel.org, zhongling0719@126.com,
Hongling Zeng <zenghongling@kylinos.cn>,
stable@vger.kernel.org
Subject: Re: [PATCH] ntfs: prevent write access to $MFT inode
Date: Fri, 14 Aug 2026 05:04:45 +0800 [thread overview]
Message-ID: <202608140556.ICYSq5Cy-lkp@intel.com> (raw)
In-Reply-To: <20260702063529.45448-1-zenghongling@kylinos.cn>
Hi Hongling,
kernel test robot noticed the following build warnings:
[auto build test WARNING on brauner-vfs/vfs.all]
[also build test WARNING on linus/master v7.2-rc7 next-20260812]
[If your patch is applied to the wrong git tree, kindly drop us a note.
And when submitting patch, we suggest to use '--base' as documented in
https://git-scm.com/docs/git-format-patch#_base_tree_information]
url: https://github.com/intel-lab-lkp/linux/commits/Hongling-Zeng/ntfs-prevent-write-access-to-MFT-inode/20260814-004837
base: https://git.kernel.org/pub/scm/linux/kernel/git/vfs/vfs.git vfs.all
patch link: https://lore.kernel.org/r/20260702063529.45448-1-zenghongling%40kylinos.cn
patch subject: [PATCH] ntfs: prevent write access to $MFT inode
config: powerpc-allmodconfig (https://download.01.org/0day-ci/archive/20260814/202608140556.ICYSq5Cy-lkp@intel.com/config)
compiler: powerpc64-linux-gcc (GCC) 16.1.0
reproduce (this is a W=1 build): (https://download.01.org/0day-ci/archive/20260814/202608140556.ICYSq5Cy-lkp@intel.com/reproduce)
If you fix the issue in a separate patch/commit (i.e. not just a new version of
the same patch/commit), kindly add following tags
| Reported-by: kernel test robot <lkp@intel.com>
| Closes: https://lore.kernel.org/oe-kbuild-all/202608140556.ICYSq5Cy-lkp@intel.com/
All warnings (new ones prefixed by >>):
In file included from fs/ntfs/inode.h:13,
from fs/ntfs/ntfs.h:26,
from fs/ntfs/attrib.h:13,
from fs/ntfs/lcnalloc.h:13,
from fs/ntfs/file.c:19:
fs/ntfs/file.c: In function 'ntfs_file_write_iter':
>> fs/ntfs/file.c:554:38: warning: format '%lx' expects argument of type 'long unsigned int', but argument 4 has type 'u64' {aka 'long long unsigned int'} [-Wformat=]
554 | ntfs_error(vi->i_sb, "Attempt to write to $MFT denied (mft_no: 0x%lx)",
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
555 | ni->mft_no);
| ~~~~~~~~~~
| |
| u64 {aka long long unsigned int}
fs/ntfs/debug.h:59:68: note: in definition of macro 'ntfs_error'
59 | #define ntfs_error(sb, f, a...) __ntfs_error(__func__, sb, f, ##a)
| ^
fs/ntfs/file.c:554:84: note: format string is defined here
554 | ntfs_error(vi->i_sb, "Attempt to write to $MFT denied (mft_no: 0x%lx)",
| ~~^
| |
| long unsigned int
| %llx
fs/ntfs/file.c: In function 'ntfs_filemap_page_mkwrite':
fs/ntfs/file.c:631:41: warning: format '%lx' expects argument of type 'long unsigned int', but argument 4 has type 'u64' {aka 'long long unsigned int'} [-Wformat=]
631 | ntfs_error(inode->i_sb, "Attempt to write to $MFT via mmap denied (mft_no: 0x%lx)",
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
632 | ni->mft_no);
| ~~~~~~~~~~
| |
| u64 {aka long long unsigned int}
fs/ntfs/debug.h:59:68: note: in definition of macro 'ntfs_error'
59 | #define ntfs_error(sb, f, a...) __ntfs_error(__func__, sb, f, ##a)
| ^
fs/ntfs/file.c:631:96: note: format string is defined here
631 | ntfs_error(inode->i_sb, "Attempt to write to $MFT via mmap denied (mft_no: 0x%lx)",
| ~~^
| |
| long unsigned int
| %llx
vim +554 fs/ntfs/file.c
537
538 static ssize_t ntfs_file_write_iter(struct kiocb *iocb, struct iov_iter *from)
539 {
540 struct file *file = iocb->ki_filp;
541 struct inode *vi = file->f_mapping->host;
542 struct ntfs_inode *ni = NTFS_I(vi);
543 struct ntfs_volume *vol = ni->vol;
544 ssize_t ret;
545 ssize_t count;
546 loff_t pos;
547 int err;
548 loff_t old_data_size, old_init_size;
549
550 if (NVolShutdown(vol))
551 return -EIO;
552
553 if (ni->mft_no == FILE_MFT) {
> 554 ntfs_error(vi->i_sb, "Attempt to write to $MFT denied (mft_no: 0x%lx)",
555 ni->mft_no);
556 return -EACCES;
557 }
558
559 if (NInoEncrypted(ni)) {
560 ntfs_error(vi->i_sb, "Writing for %s files is not supported yet",
561 NInoCompressed(ni) ? "Compressed" : "Encrypted");
562 return -EOPNOTSUPP;
563 }
564
565 if (NInoCompressed(ni) && iocb->ki_flags & IOCB_DIRECT)
566 return -EOPNOTSUPP;
567
568 if (iocb->ki_flags & IOCB_NOWAIT) {
569 if (!inode_trylock(vi))
570 return -EAGAIN;
571 } else
572 inode_lock(vi);
573
574 ret = generic_write_checks(iocb, from);
575 if (ret <= 0)
576 goto out_lock;
577
578 err = file_modified(iocb->ki_filp);
579 if (err) {
580 ret = err;
581 goto out_lock;
582 }
583
584 if (!(vol->vol_flags & VOLUME_IS_DIRTY))
585 ntfs_set_volume_flags(vol, VOLUME_IS_DIRTY);
586
587 pos = iocb->ki_pos;
588 count = ret;
589
590 old_data_size = ni->data_size;
591 old_init_size = ni->initialized_size;
592
593 if (NInoNonResident(ni) && NInoCompressed(ni)) {
594 ret = ntfs_compress_write(ni, pos, count, from);
595 if (ret > 0)
596 iocb->ki_pos += ret;
597 goto out;
598 }
599
600 if (NInoNonResident(ni) && iocb->ki_flags & IOCB_DIRECT)
601 ret = ntfs_dio_write_iter(iocb, from);
602 else
603 ret = iomap_file_buffered_write(iocb, from, &ntfs_write_iomap_ops,
604 &ntfs_iomap_folio_ops, NULL);
605 out:
606 if (ret < 0 && ret != -EIOCBQUEUED) {
607 if (ni->initialized_size != old_init_size) {
608 mutex_lock(&ni->mrec_lock);
609 ntfs_attr_set_initialized_size(ni, old_init_size);
610 mutex_unlock(&ni->mrec_lock);
611 }
612 if (ni->data_size != old_data_size) {
613 truncate_setsize(vi, old_data_size);
614 ntfs_attr_truncate(ni, old_data_size);
615 }
616 }
617 out_lock:
618 inode_unlock(vi);
619 if (ret > 0)
620 ret = generic_write_sync(iocb, ret);
621 return ret;
622 }
623
--
0-DAY CI Kernel Test Service
https://github.com/intel/lkp-tests/wiki
prev parent reply other threads:[~2026-08-13 21:05 UTC|newest]
Thread overview: 2+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-02 6:35 [PATCH] ntfs: prevent write access to $MFT inode Hongling Zeng
2026-08-13 21:04 ` kernel test robot [this message]
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=202608140556.ICYSq5Cy-lkp@intel.com \
--to=lkp@intel.com \
--cc=charsyam@gmail.com \
--cc=hyc.lee@gmail.com \
--cc=linkinjeon@kernel.org \
--cc=linux-fsdevel@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=oe-kbuild-all@lists.linux.dev \
--cc=stable@vger.kernel.org \
--cc=zenghongling@kylinos.cn \
--cc=zhongling0719@126.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.