2016-12-12 22:15:54

by Jaegeuk Kim

[permalink] [raw]
Subject: [GIT PULL] f2fs update for 4.10

Hi Linus,

Could you please consider this pull request?

Thanks,

The following changes since commit ded9b5dd205ef04aa095c3b731c635b201191a59:

Merge branch 'perf-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip (2016-11-23 08:09:21 -0800)

are available in the git repository at:

git://git.kernel.org/pub/scm/linux/kernel/git/jaegeuk/f2fs.git tags/for-f2fs-4.10

for you to fetch changes up to c0ed4405a99ec9be2a0f062eaafc002d8d26c99f:

f2fs: fix a missing size change in f2fs_setattr (2016-12-12 11:09:05 -0800)

----------------------------------------------------------------
for-f2fs-4.10

This patch series contains several performance tuning patches regarding to the
IO submission flow, in addition to supporting new features such as a ZBC-base
drive and multiple devices.

It also includes some major bug fixes such as:
- checkpoint version control
- fdatasync-related roll-forward recovery routine
- memory boundary or null-pointer access in corner cases
- missing error cases

It has various minor clean-up patches as well.

----------------------------------------------------------------
Arnd Bergmann (2):
f2fs: hide a maybe-uninitialized warning
f2fs: fix 32-bit build

Chao Yu (21):
f2fs: exclude free nids building and allocation
f2fs: fix to release discard entries during checkpoint
f2fs: give a chance to detach from dirty list
f2fs: add missing f2fs_balance_fs in f2fs_zero_range
f2fs: don't miss any f2fs_balance_fs cases
f2fs: be aware of extent beyond EOF in fiemap
f2fs: fix to update largest extent under lock
f2fs: fix error handling in fsync_node_pages
f2fs: clear nlink if fail to add_link
f2fs: split free nid list
f2fs: don't interrupt free nids building during nid allocation
f2fs: avoid casted negative value as shrink count
f2fs: report error of f2fs_fill_dentries
f2fs: record inode updating status correctly
f2fs: fix wrong i_atime recovery
Revert "f2fs: do not recover from previous remained wrong dnodes"
f2fs: don't wait writeback for datas during checkpoint
f2fs: fix to account total free nid correctly
f2fs: fix fdatasync
f2fs: fix incorrect free inode count in ->statfs
f2fs: return AOP_WRITEPAGE_ACTIVATE for writepage

Damien Le Moal (9):
f2fs: Add missing break in switch-case
f2fs: Use generic zoned block device terminology
f2fs: Check zoned block feature for host-managed zoned block devices
f2fs: Suppress discard warning message for zoned block devices
f2fs: Always enable discard for zoned blocks devices
f2fs: Do not allow adaptive mode for host-managed zoned block devices
f2fs: Cache zoned block devices zone type
f2fs: Reset sequential zones on zoned block devices
f2fs: Trace reset zone events

Eric Biggers (1):
f2fs: fix sparse warnings

Geliang Tang (1):
f2fs: drop duplicate header timer.h

Jaegeuk Kim (28):
f2fs: fix overflow due to condition check order
f2fs: clean up free nid list operations
f2fs: count dirty inodes to flush node pages during checkpoint
f2fs: call f2fs_balance_fs for setattr
f2fs: declare static function for __build_free_nids
f2fs: use BIO_MAX_PAGES for bio allocation
f2fs: keep dirty inodes selectively for checkpoint
f2fs: make clean inodes when flushing inode page
f2fs: remove percpu_count due to performance regression
f2fs: avoid infinite loop in the EIO case on recover_orphan_inodes
f2fs: assign segments correctly for direct_io
f2fs: remove checkpoint in f2fs_freeze
f2fs: revert segment allocation for direct IO
f2fs: allow dio read for LFS mode
f2fs: support multiple devices
f2fs: use err for f2fs_preallocate_blocks
f2fs: fix redundant block allocation
f2fs: avoid BG_GC in f2fs_balance_fs
f2fs: fix wrong written_valid_blocks counting
f2fs: do not recover i_size if it's valid
f2fs: fix wrong AUTO_RECOVER condition
f2fs: fix to determine start_cp_addr by sbi->cur_cp_pack
f2fs: do not activate auto_recovery for fallocated i_size
Revert "f2fs: use percpu_counter for # of dirty pages in inode"
f2fs: call sync_fs when f2fs is idle
f2fs: detect wrong layout
f2fs: free meta pages if sanity check for ckpt is failed
f2fs: fix to access nullified flush_cmd_control pointer

Nicolai Stange (1):
f2fs: set ->owner for debugfs status file's file_operations

Yunlei He (3):
f2fs: return directly if block has been removed from the victim
f2fs: fix an infinite loop when flush nodes in cp
f2fs: fix a missing size change in f2fs_setattr

fs/f2fs/acl.c | 2 +-
fs/f2fs/checkpoint.c | 34 ++++--
fs/f2fs/data.c | 192 ++++++++++++++++++++----------
fs/f2fs/debug.c | 29 +++--
fs/f2fs/dir.c | 30 +++--
fs/f2fs/extent_cache.c | 2 +-
fs/f2fs/f2fs.h | 197 +++++++++++++++++++++----------
fs/f2fs/file.c | 67 ++++++-----
fs/f2fs/gc.c | 29 +++--
fs/f2fs/inline.c | 14 ++-
fs/f2fs/inode.c | 47 ++++++--
fs/f2fs/namei.c | 6 +-
fs/f2fs/node.c | 226 +++++++++++++++++++++--------------
fs/f2fs/node.h | 13 +-
fs/f2fs/recovery.c | 46 ++------
fs/f2fs/segment.c | 236 +++++++++++++++++++++++++++----------
fs/f2fs/segment.h | 28 ++---
fs/f2fs/shrinker.c | 10 +-
fs/f2fs/super.c | 281 +++++++++++++++++++++++++++++++++++++-------
fs/f2fs/xattr.c | 4 +-
include/linux/f2fs_fs.h | 10 +-
include/trace/events/f2fs.h | 21 ++++
22 files changed, 1048 insertions(+), 476 deletions(-)


2016-12-14 17:12:13

by Linus Torvalds

[permalink] [raw]
Subject: Re: [GIT PULL] f2fs update for 4.10

On Mon, Dec 12, 2016 at 2:15 PM, Jaegeuk Kim <[email protected]> wrote:
>
> Could you please consider this pull request?

Pulled. Mind double-checking my resolution wrt commit 70fd76140a6c
("block,fs: use REQ_* flags directly")?

Linus

2016-12-14 18:40:19

by Jaegeuk Kim

[permalink] [raw]
Subject: Re: [GIT PULL] f2fs update for 4.10

On 12/14, Linus Torvalds wrote:
> On Mon, Dec 12, 2016 at 2:15 PM, Jaegeuk Kim <[email protected]> wrote:
> >
> > Could you please consider this pull request?
>
> Pulled. Mind double-checking my resolution wrt commit 70fd76140a6c
> ("block,fs: use REQ_* flags directly")?

Thank you, and the resolution looks good to me as well.

Thanks,

>
> Linus

2016-12-14 19:18:39

by Jaegeuk Kim

[permalink] [raw]
Subject: Re: [f2fs-dev] [GIT PULL] f2fs update for 4.10

On 12/14, Jaegeuk Kim wrote:
> On 12/14, Linus Torvalds wrote:
> > On Mon, Dec 12, 2016 at 2:15 PM, Jaegeuk Kim <[email protected]> wrote:
> > >
> > > Could you please consider this pull request?
> >
> > Pulled. Mind double-checking my resolution wrt commit 70fd76140a6c
> > ("block,fs: use REQ_* flags directly")?
>
> Thank you, and the resolution looks good to me as well.

BTW, I just downloaded mainline, and tried to build a debian package but
failed due to missing Documentation/Changes.

I've found out that it was renamed by commit 186128f753
("docs-rst: add documents to development-process")

And when taking a look at its description, it was supposed to do symlink for
document files, but did rename all of them.

Afterwards, I could see some files were re-added by commit 08a9a8d44c1
("doc: re-add CodingStyle and SubmittingPatches")

In order to build a package for now, I just added a symlink like below.

---
Documentation/Changes | 1 +
1 file changed, 1 insertion(+)
create mode 120000 Documentation/Changes

diff --git a/Documentation/Changes b/Documentation/Changes
new file mode 120000
index 000000000000..7564ae1682ba
--- /dev/null
+++ b/Documentation/Changes
@@ -0,0 +1 @@
+process/changes.rst
\ No newline at end of file
--
2.11.0

Thanks,

>
> Thanks,
>
> >
> > Linus
>
> ------------------------------------------------------------------------------
> Check out the vibrant tech community on one of the world's most
> engaging tech sites, SlashDot.org! http://sdm.link/slashdot
> _______________________________________________
> Linux-f2fs-devel mailing list
> [email protected]
> https://lists.sourceforge.net/lists/listinfo/linux-f2fs-devel

2016-12-15 00:38:35

by Linus Torvalds

[permalink] [raw]
Subject: Re: [f2fs-dev] [GIT PULL] f2fs update for 4.10

On Wed, Dec 14, 2016 at 11:18 AM, Jaegeuk Kim <[email protected]> wrote:
>
> BTW, I just downloaded mainline, and tried to build a debian package but
> failed due to missing Documentation/Changes.
>
> I've found out that it was renamed by commit 186128f753
> ("docs-rst: add documents to development-process")
>
> And when taking a look at its description, it was supposed to do symlink for
> document files, but did rename all of them.

Indeed.

Tssk. I've added the one symlink. Maybe we should add the others too,
but for now let's keep it minimal.

Linus

2016-12-15 01:26:27

by Greg Kroah-Hartman

[permalink] [raw]
Subject: Re: [f2fs-dev] [GIT PULL] f2fs update for 4.10

On Wed, Dec 14, 2016 at 04:38:32PM -0800, Linus Torvalds wrote:
> On Wed, Dec 14, 2016 at 11:18 AM, Jaegeuk Kim <[email protected]> wrote:
> >
> > BTW, I just downloaded mainline, and tried to build a debian package but
> > failed due to missing Documentation/Changes.
> >
> > I've found out that it was renamed by commit 186128f753
> > ("docs-rst: add documents to development-process")
> >
> > And when taking a look at its description, it was supposed to do symlink for
> > document files, but did rename all of them.
>
> Indeed.
>
> Tssk. I've added the one symlink. Maybe we should add the others too,
> but for now let's keep it minimal.

Crap, I missed that in the patch I acked, I should have noticed that.

Thanks for the symlink, Mauro, want to make the rest of the files actual
symlinks as well, instead of just the rename?

thanks,

greg k-h

2016-12-15 09:34:02

by Mauro Carvalho Chehab

[permalink] [raw]
Subject: Re: [f2fs-dev] [GIT PULL] f2fs update for 4.10

Em Wed, 14 Dec 2016 17:18:57 -0800
Greg Kroah-Hartman <[email protected]> escreveu:

> On Wed, Dec 14, 2016 at 04:38:32PM -0800, Linus Torvalds wrote:
> > On Wed, Dec 14, 2016 at 11:18 AM, Jaegeuk Kim <[email protected]> wrote:
> > >
> > > BTW, I just downloaded mainline, and tried to build a debian package but
> > > failed due to missing Documentation/Changes.
> > >
> > > I've found out that it was renamed by commit 186128f753
> > > ("docs-rst: add documents to development-process")
> > >
> > > And when taking a look at its description, it was supposed to do symlink for
> > > document files, but did rename all of them.
> >
> > Indeed.
> >
> > Tssk. I've added the one symlink. Maybe we should add the others too,
> > but for now let's keep it minimal.
>
> Crap, I missed that in the patch I acked, I should have noticed that.
>
> Thanks for the symlink, Mauro, want to make the rest of the files actual
> symlinks as well, instead of just the rename?

Hi Greg/Linus,

FYI, there was a discussion about that on lkml and linux-doc.

On that time, we considered 3 alternatives for those well-known
files:

1) just rename;
2) use symlink;
3) keep a short text telling that the file was moved, replacing
the previous contents.

After discussions, we end by using (3) for a short group of files:
README
Documentation/CodingStyle
Documentation/SubmittingPatches

>From my side, while I think all alternatives work fine, my personal
preference in short term[1] is for symlinks, just because it makes
easier to distinguish what files still need conversion.

[1] In long term, it probably makes more sense to get rid of those
symlinks at Documentation/* and use a different content at README file,
for example, adding references there to the main books at the Kernel
documentation, e. g. something like Documentation/00-INDEX.

So, if you prefer symlinks instead, feel free to merge the enclosed
patch. It is using soft symlinks, with I guess works better than
hard symlinks.

Thanks,
Mauro

[PATCH RFC] docs-rst: use symlinks for well-known renamed doc files

There was a discussion about that while reviewing commit 186128f75392
("docs-rst: add documents to development-process"), about what to do
with well-known documentation files.

On that time, we considered 3 alternatives:

1) just rename the files;
2) use symlink on the previous location;
3) keep a short text telling that the file was moved, replacing
the previous file contents.

We end by using (3) for a short group of files:
README
Documentation/CodingStyle
Documentation/SubmittingPatches

Commit 852d21ae1fcd ("docs: add back 'Documentation/Changes' file
(as symlink)") added another one (Documentation/Changes), but as a
symlink.

Let's standardize this by using the same logic on those
well-known renamed docs, replacing those files by symlinks.

Signed-off-by: Mauro Carvalho Chehab <[email protected]>

diff --git a/Documentation/CodingStyle b/Documentation/CodingStyle
deleted file mode 100644
index 320983ca114e..000000000000
--- a/Documentation/CodingStyle
+++ /dev/null
@@ -1 +0,0 @@
-This file has moved to process/coding-style.rst
diff --git a/Documentation/CodingStyle b/Documentation/CodingStyle
new file mode 120000
index 000000000000..b4a9864269eb
--- /dev/null
+++ b/Documentation/CodingStyle
@@ -0,0 +1 @@
+process/coding-style.rst
\ No newline at end of file
diff --git a/Documentation/SubmittingPatches b/Documentation/SubmittingPatches
deleted file mode 100644
index 81455705e4a6..000000000000
--- a/Documentation/SubmittingPatches
+++ /dev/null
@@ -1 +0,0 @@
-This file has moved to process/submitting-patches.rst
diff --git a/Documentation/SubmittingPatches b/Documentation/SubmittingPatches
new file mode 120000
index 000000000000..ffff4a70bb54
--- /dev/null
+++ b/Documentation/SubmittingPatches
@@ -0,0 +1 @@
+process/submitting-patches.rst
\ No newline at end of file
diff --git a/README b/README
deleted file mode 100644
index b2ba4aaa3a71..000000000000
--- a/README
+++ /dev/null
@@ -1,18 +0,0 @@
-Linux kernel
-============
-
-This file was moved to Documentation/admin-guide/README.rst
-
-Please notice that there are several guides for kernel developers and users.
-These guides can be rendered in a number of formats, like HTML and PDF.
-
-In order to build the documentation, use ``make htmldocs`` or
-``make pdfdocs``.
-
-There are various text files in the Documentation/ subdirectory,
-several of them using the Restructured Text markup notation.
-See Documentation/00-INDEX for a list of what is contained in each file.
-
-Please read the Documentation/process/changes.rst file, as it contains the
-requirements for building and running the kernel, and information about
-the problems which may result by upgrading your kernel.
diff --git a/README b/README
new file mode 120000
index 000000000000..c382e2a2017b
--- /dev/null
+++ b/README
@@ -0,0 +1 @@
+Documentation/admin-guide/README.rst
\ No newline at end of file