Darrick J. Wong | 7 Oct 06:54 2015

[RFCv3 00/58] xfs: add reverse-mapping, reflink, and dedupe support

Hi all,

This is the third revision of an RFC for adding to XFS kernel support
for tracking reverse-mappings of physical blocks to file and metadata;
and support for mapping multiple file logical blocks to the same
physical block, more commonly known as reflinking.  Given the
significant amount of re-engineering required to make the initial rmap
implementation compatible with reflink, I decided to publish both
features as an integrated patchset off of upstream.  This means that
rmap and reflink are now compatible with each other.

Dave Chinner's initial rmap implementation featured a simple b+tree
containing (_physical_block_, blockcount, owner) records and enough
code to stuff the rmap btree (rmapbt) whenever a block was allocated
or freed.  However, a generic reflink implementation requires the
ability to map a block to any logical block offset in any file.
Therefore it is necessary to expand the rmapbt record definition to be
(_physical block_, _owner_, _offset_, blockcount) to maintain uniquely
identifiable records.  The upper two bits of the offset field are used
to flag attr fork records and bmbt block records, respectively.  The
highest bit of the blockcount is used to indicate an unwritten extent.
It is intended that in the future the rmapbt will some day be used to
reconstruct a corrupt block map btree (bmbt).

The reflink implementation features a simple b+tree containing
(_physical block_, blockcount, refcount) records to track the
reference counts of extents of physical blocks.  There's also support
code to provide the desired copy-on-write behavior and the userland
interfaces to reflink, query the status of, and a new fallocate mode
to un-reflink parts of files.
(Continue reading)

Jaegeuk Kim | 6 Oct 00:43 2015

[PATCH 1/3] f2fs: introduce background_gc=sync mount option

This patch introduce background_gc=sync enabling synchronous cleaning in

Signed-off-by: Jaegeuk Kim <jaegeuk <at> kernel.org>
 Documentation/filesystems/f2fs.txt |  3 ++-
 fs/f2fs/f2fs.h                     |  1 +
 fs/f2fs/gc.c                       |  2 +-
 fs/f2fs/segment.h                  |  4 +++-
 fs/f2fs/super.c                    | 21 +++++++++++++++------
 5 files changed, 22 insertions(+), 9 deletions(-)

diff --git a/Documentation/filesystems/f2fs.txt b/Documentation/filesystems/f2fs.txt
index e2d5105..b102b43 100644
--- a/Documentation/filesystems/f2fs.txt
+++ b/Documentation/filesystems/f2fs.txt
 <at>  <at>  -102,7 +102,8  <at>  <at>  background_gc=%s       Turn on/off cleaning operations, namely garbage
                        collection, triggered in background when I/O subsystem is
                        idle. If background_gc=on, it will turn on the garbage
                        collection and if background_gc=off, garbage collection
-                       will be truned off.
+                       will be truned off. If background_gc=sync, it will turn
+                       on synchronous garbage collection running in background.
                        Default value for this option is on. So garbage
                        collection is on by default.
 disable_roll_forward   Disable the roll-forward recovery routine
diff --git a/fs/f2fs/f2fs.h b/fs/f2fs/f2fs.h
index 18e5902..00bd470 100644
--- a/fs/f2fs/f2fs.h
+++ b/fs/f2fs/f2fs.h
(Continue reading)

Ross Zwisler | 6 Oct 00:33 2015

[PATCH 0/2] Add explicit coredump filtering for DAX mappings

Add two new flags to the existing coredump mechanism for ELF files to allow
us to explicitly filter DAX mappings.  This is desirable because DAX
mappings, like hugetlb mappings, have the potential to be very large.

The coredump code relies on get_user_page() to populate the coredump file
with the appropriate data, and for DAX mappings this currently fails.  This
results in a hole being placed in the coredump file, so you end up reading
back zeros.  Once the get_user_pages() patch series from Dan Williams [1]
is merged, DAX core dumps will give real data.

I have a patch ready for core(5) to update the documentation on the new
filtering flags.  I'll send it out once this gets merged.

[1] http://thread.gmane.org/gmane.linux.kernel.mm/139026

Ross Zwisler (2):
  coredump: add DAX filtering for ELF coredumps
  coredump: add DAX filtering for FDPIC ELF coredumps

 Documentation/filesystems/proc.txt | 22 ++++++++++++----------
 fs/binfmt_elf.c                    | 10 ++++++++++
 fs/binfmt_elf_fdpic.c              | 15 +++++++++++++++
 include/linux/sched.h              |  4 +++-
 4 files changed, 40 insertions(+), 11 deletions(-)



To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
(Continue reading)

Andreas Gruenbacher | 4 Oct 19:18 2015

[PATCH v3 0/7] Pass xattr handler to xattr handler operations

This is version three of the xattr cleanups.  The main change in the series
is to pass struct xattr_handler down to the xattr handler operations.  In
addition, a few other small problems in the code are fixed.

What's missing is a fix for ocfs2's listxattr operation: ocfs2 implements
list xattr handler operations which should be but actually are not used
from anywhere.  Mark Fasheh is aware of this.

The patch queue is available in git form here:

  git://git.kernel.org/pub/scm/linux/kernel/git/agruen/linux \

Al, can this please be merged?


Changes from version 2:

 * xattr_full_name: Improve kdoc comment and remove commented-out

Changes from version 1:

 * The xattr handler is passed to xattr handler operations as the first
   instead of the last argument.

 * The patches are split per filesystem.

(Continue reading)

Darrick J. Wong | 3 Oct 05:46 2015

[PATCH v2] jbd2: gate checksum calculations on crc driver presence, not sb flags

Change the journal's checksum functions to gate on whether or not the
crc32c driver is loaded, and gate the loading on the superblock bits.
This prevents a journal crash if someone loads a journal in no-csum
mode and then randomizes the superblock, thus flipping on the feature

v2: Create a feature-test helper, use it everywhere.

Tested-By: Nikolay Borisov <kernel <at> kyup.com>
Reported-by: Nikolay Borisov <kernel <at> kyup.com>
Signed-off-by: Darrick J. Wong <darrick.wong <at> oracle.com>
 fs/jbd2/journal.c    |    6 +++---
 include/linux/jbd2.h |   13 +++++++++----
 2 files changed, 12 insertions(+), 7 deletions(-)

diff --git a/fs/jbd2/journal.c b/fs/jbd2/journal.c
index 8270fe9..00f7dbd 100644
--- a/fs/jbd2/journal.c
+++ b/fs/jbd2/journal.c
 <at>  <at>  -124,7 +124,7  <at>  <at>  EXPORT_SYMBOL(__jbd2_debug);
 /* Checksumming functions */
 static int jbd2_verify_csum_type(journal_t *j, journal_superblock_t *sb)
-	if (!jbd2_journal_has_csum_v2or3(j))
+	if (!jbd2_journal_has_csum_v2or3_feature(j))
 		return 1;

 	return sb->s_checksum_type == JBD2_CRC32C_CHKSUM;
 <at>  <at>  -1531,7 +1531,7  <at>  <at>  static int journal_get_superblock(journal_t *journal)
(Continue reading)

Unknown | 2 Oct 04:23 2015


 Contact us for both personal and business loans today at an interest rate of 2%, interested individual or
company should Fill and return the loan application form below.


5) SEX:
6) AGE:

Warm regard.
Wilfred Davis.
Phone: +91-7838915074
(Chairman, Montage Global Pvt Ltd.)
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo <at> vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Kornievskaia, Olga | 2 Oct 00:54 2015

help with understanding evict inode functionality

Hi folks,

Can somebody help explain evict inode functionality? Specifically I’m interested in know how it
interacts with the opening of the same file again?

In NFS development, we’ve been seeing a race between reopening of the same file and evict inode code and
unable figure out how to prevent such race. When file is opened for the first timed and then closed. As the
last reference is dropped and iput_final() calls evict() which will call filesystem specific
evict_inode() code. As that’s happening a new open for the same file is happening and causes problems.

Also can somebody suggest how to debug VFS code, as putting printks generates output for the local
filesystem code as well. 

Thank you.

(I don’t subscribe to the mailing list please CC in the reply).

Dave Chinner | 1 Oct 09:46 2015

[PATCH 0/7] xfs, dax: fix the page fault/allocation mess

Hi folks,

As discussed in the recent thread about problems with DAX locking:


I said that I'd post the patch set that fixed the problems for XFS
as soon as I had something sane and workable. That's what this
series is.

To start with, it passes xfstests "auto" group with only the only
failures being expected failures or failures due to unexpected
allocation patterns or trying to use unsupported block sizes. That
makes it better than any previous version of the XFS/DAX code.

The patchset starts by reverting the two patches that were
introduced in 4.3-rc1 to try to fix the fault vs fault and fault vs
truncate races that caused deadlocks. This fixes the hangs in
generic/075 that these patches introduced.

Patch 3 enables XFS to handle the behaviour of DAX and DIO when
asking to allocate the block at (2^63 - 1FSB), where the offset +
count s technically illegal (larger than sb->s_maxbytes) and
overflows a s64 variable. This is currently hidden by the fact that
all DAX and DIO allocation is currently unwritten, but patch 5
exposes it for DAX.

Patch 4 introduces the ability for XFS to allocate physically zeroed
data blocks. This is done for each physical extent that is
allocated, deep inside the allocator itself and guaranteed to be
(Continue reading)

akpm | 1 Oct 01:16 2015

mmotm 2015-09-30-16-16 uploaded

The mm-of-the-moment snapshot 2015-09-30-16-16 has been uploaded to


mmotm-readme.txt says

README for mm-of-the-moment:


This is a snapshot of my -mm patch queue.  Uploaded at random hopefully
more than once a week.

You will need quilt to apply these patches to the latest Linus release (4.x
or 4.x-rcY).  The series file is in broken-out.tar.gz and is duplicated in

The file broken-out.tar.gz contains two datestamp files: .DATE and
.DATE-yyyy-mm-dd-hh-mm-ss.  Both contain the string yyyy-mm-dd-hh-mm-ss,
followed by the base kernel version against which this patch series is to
be applied.

This tree is partially included in linux-next.  To see which patches are
included in linux-next, consult the `series' file.  Only the patches
within the #NEXT_PATCHES_START/#NEXT_PATCHES_END markers are included in

A git tree which contains the memory management portion of this tree is
maintained at git://git.kernel.org/pub/scm/linux/kernel/git/mhocko/mm.git
by Michal Hocko.  It contains the patches which are between the
(Continue reading)

Roman Lebedev | 30 Sep 21:57 2015

kernel BUG when fsync'ing file in a overlayfs merged dir, located on btrfs


My / is btrfs.
To do some my local stuff more cleanly i wanted to use overlayfs, 
but it didn't quite work.

Simple non-automatic sequence to reproduce the issue:
 mkdir lower upper work merged
 mount -t overlay overlay -olowerdir=lower,upperdir=upper,workdir=work merged
 vi merged/file

Results in vi being killed on exit, and the following trace appears in dmesg:

[34304.047841] BUG: unable to handle kernel paging request at 0000000009618e56
[34304.047846] IP: [<ffffffffa01667b6>] btrfs_sync_file+0xa6/0x350 [btrfs]
[34304.047864] PGD 0 
[34304.047866] Oops: 0002 [#12] SMP 
[34304.047867] Modules linked in: overlay cpufreq_userspace cpufreq_stats cpufreq_powersave
cpufreq_conservative binfmt_misc nfsd auth_rpcgss oid_registry nfs_acl nfs lockd grace fscache
sunrpc fglrx(PO) nls_utf8 joydev nls_cp437 vfat fat hid_generic usbhid kvm_amd hid kvm
crct10dif_pclmul crc32_pclmul ghash_clmulni_intel snd_hda_codec_realtek snd_hda_codec_generic
snd_hda_codec_hdmi sha256_ssse3 sha256_generic snd_hda_intel snd_hda_codec hmac drbg ansi_cprng
aesni_intel snd_hda_core aes_x86_64 mxm_wmi snd_hwdep lrw eeepc_wmi snd_pcm gf128mul asus_wmi
sparse_keymap rfkill video snd_timer glue_helper sp5100_tco evdev ablk_helper e1000e ohci_pci
pcspkr snd ohci_hcd xhci_pci edac_mce_amd ehci_pci serio_raw xhci_hcd soundcore fam15h_power
ehci_hcd cryptd edac_core ptp pps_core usbcore k10temp 
[34304.047893]  sg usb_common acpi_cpufreq wmi tpm_infineon button processor shpchp tpm_tis tpm
thermal_sys tcp_yeah tcp_vegas it87 hwmon_vid loop parport_pc ppdev lp parport autofs4
(Continue reading)

Darrick J. Wong | 30 Sep 19:47 2015

[PATCH] jbd2: gate checksum calculations on crc driver presence, not sb flags

Change the journal's checksum functions to gate on whether or not the
crc32c driver is loaded, and gate the loading on the superblock bits.
This prevents a journal crash if someone loads a journal in no-csum
mode and then randomizes the superblock, thus flipping on the feature

Reported-by: Nikolay Borisov <kernel <at> kyup.com>
Signed-off-by: Darrick J. Wong <darrick.wong <at> oracle.com>
 fs/jbd2/journal.c    |   12 +++++++++---
 include/linux/jbd2.h |   10 ++++++----
 2 files changed, 15 insertions(+), 7 deletions(-)

diff --git a/fs/jbd2/journal.c b/fs/jbd2/journal.c
index 8270fe9..16e3a46 100644
--- a/fs/jbd2/journal.c
+++ b/fs/jbd2/journal.c
 <at>  <at>  -122,9 +122,15  <at>  <at>  EXPORT_SYMBOL(__jbd2_debug);

 /* Checksumming functions */
+static bool journal_has_csum_v2or3_feature(journal_t *j)
 static int jbd2_verify_csum_type(journal_t *j, journal_superblock_t *sb)
-	if (!jbd2_journal_has_csum_v2or3(j))
(Continue reading)