Whamcloud - gitweb
e2fsck: allow deleting or zeroing shared blocks
authorAndreas Dilger <andreas.dilger@intel.com>
Thu, 12 Apr 2012 23:32:53 +0000 (17:32 -0600)
committerLi Dongyang <dongyangli@ddn.com>
Tue, 14 Jan 2025 04:22:17 +0000 (15:22 +1100)
commitc1ecde9951afbd3e7a1975f05351f6f0bda20ec7
treef65b48e73c8a9fade45cda1ed18801d62af808cf
parent009701ee17473bb91182b8bd83131da0157b30d0
e2fsck: allow deleting or zeroing shared blocks

E2fsck fixes files that are found to be sharing blocks by cloning
the shared blocks and giving each file a private copy in pass 1D.

Allowing all files claiming the shared blocks to have copies can
inadvertantly bypass access restrictions.  Deleting all the files,
zeroing the cloned blocks, or placing the files in the /lost+found
directory after cloning may be preferable in some secure environments.

The following patches implement config file and command line options
in e2fsck that allow pass 1D behavior to be tuned according to site
policy.  It adds two extended options and config file counterparts.
On the command line:

 -E clone=dup|zero

    Select the block cloning method.  "dup" is old behavior,
    and is the default.  "zero" is a new method that substitutes
    zero-filled blocks for the shared blocks in all the files
    that claim them.

 -E shared=preserve|lost+found|delete

    Select the disposition of files containing shared blocks.
    "preserve" is the old behavior which remains the default.
    "lost+found" causes files to be unlinked after cloning so
    they will be reconnected to /lost+found in pass 3.
    "delete" skips cloning entirely and simply deletes the files.

In the config file:
  [options]
      clone=dup|zero
      shared=preserve|lost+found|delete

Change-Id: I132a3122076b5c68c4f9ea8c1316cb48f8d94020
Signed-off-by: Jim Garlick <garlick@llnl.gov>
Signed-off-by: Andreas Dilger <andreas.dilger@intel.com>
e2fsck/e2fsck.8.in
e2fsck/e2fsck.conf.5.in
e2fsck/e2fsck.h
e2fsck/pass1b.c
e2fsck/problem.c
e2fsck/problem.h
e2fsck/unix.c