Whamcloud - gitweb
e2fsck: allow deleting or zeroing shared blocks
authorAndreas Dilger <adilger@whamcloud.com>
Thu, 12 Apr 2012 23:32:53 +0000 (17:32 -0600)
committerAndreas Dilger <adilger@whamcloud.com>
Sat, 15 Sep 2012 18:49:47 +0000 (12:49 -0600)
commit7a40e72fc26f24bab359b67de1a2a2e89c4ae294
tree2bd5f2ab535bb06c469e4c556c77f3d8967d0030
parent3f9a5fb7482c0e1dfbe23afbc4f0db97406df70e
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

Signed-off-by: Jim Garlick <garlick@llnl.gov>
Signed-off-by: Andreas Dilger <adilger@whamcloud.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