Re: [f2fs-dev] [RFC PATCH 2/2] f2fs: export a threshold in sysfs for controlling dio serialization

2016-01-12 Thread Chao Yu
Hi Jaegeuk, > -Original Message- > From: Chao Yu [mailto:chao2...@samsung.com] > Sent: Tuesday, December 29, 2015 2:39 PM > To: 'Jaegeuk Kim' > Cc: linux-ker...@vger.kernel.org; linux-f2fs-devel@lists.sourceforge.net > Subject: Re: [f2fs-dev] [RFC PATCH 2/2] f2fs: export a threshold in sys

Re: [f2fs-dev] [PATCH 2/2] f2fs: support revoking atomic written pages

2016-01-12 Thread Chao Yu
Hi Jaegeuk, > -Original Message- > From: Jaegeuk Kim [mailto:jaeg...@kernel.org] > Sent: Wednesday, January 13, 2016 9:18 AM > To: Chao Yu > Cc: linux-ker...@vger.kernel.org; linux-f2fs-devel@lists.sourceforge.net > Subject: Re: [f2fs-dev] [PATCH 2/2] f2fs: support revoking atomic written

Re: [f2fs-dev] [PATCH 2/2] f2fs: support revoking atomic written pages

2016-01-12 Thread Jaegeuk Kim
Hi Chao, I just injected -EIO for one page among two pages in total into database file. Then, I tested valid and invalid journal file to see how sqlite recovers the transaction. Interestingly, if journal is valid, database file is recovered, as I could see the transaction result even after it sho

Re: [f2fs-dev] Consolidated file encryption interface/semantics?

2016-01-12 Thread Theodore Ts'o
On Mon, Jan 11, 2016 at 11:47:56PM -0800, Jaegeuk Kim wrote: > > Actually, I tried to prepare this quite long time ago [1], which was stuck > that moment unfortunately, since I needed to wait for how AOSP finally treats > with this feature. At some moment later, I couldn't even follow up every ext

[f2fs-dev] [PATCH 27/35] drivers: set request op to REQ_OP

2016-01-12 Thread mchristi
From: Mike Christie This patch has the block driver use the request->op for REQ_OP operations and cmd_flags for rq_flag_bits. I have only tested scsi and rbd. Signed-off-by: Mike Christie --- drivers/block/loop.c | 6 +++--- drivers/block/mtip32xx/mtip32xx.c | 2 +- drivers/blo

[f2fs-dev] [PATCH 10/35] btrfs: don't pass rq_flag_bits if there is a bio

2016-01-12 Thread mchristi
From: Mike Christie The bio bi_op and bi_rw is now setup, so there is no need to pass around the rq_flag_bits bits too. v2: 1. Fix merge_bio issue where instead of removing rw/op argument I passed it in again to the merge_bio related functions. Signed-off-by: Mike Christie --- fs/btrfs/compr

[f2fs-dev] [PATCH 02/35] block: add REQ_OP definitions and bi_op/op fields

2016-01-12 Thread mchristi
From: Mike Christie The following patches separate the operation (write, read, discard, etc) from the flags in bi_rw/cmd_flags. This patch adds definitions for request/bio operations, adds fields to the request/bio to set them, and some temporary compat code so the kernel/modules can use either o

[f2fs-dev] [PATCH 26/35] block: set op to REQ_OP

2016-01-12 Thread mchristi
From: Mike Christie This patch converts the request related block layer code to set request->op to a REQ_OP and cmd_flags to rq_flag_bits. There is some tmp compat code when setting up cmd_flags so it still carries both the op and flags. It will be removed in in later patches in this set when I

[f2fs-dev] [PATCH 16/35] nilfs: set bi_op to REQ_OP

2016-01-12 Thread mchristi
From: Mike Christie This patch has nilfs set the bio bi_op to a REQ_OP, and rq_flag_bits to bi_rw. This patch is compile tested only. Signed-off-by: Mike Christie --- fs/nilfs2/segbuf.c | 18 ++ 1 file changed, 10 insertions(+), 8 deletions(-) diff --git a/fs/nilfs2/segbuf.c

Re: [f2fs-dev] [dm-devel] [PATCH 02/35] block: add REQ_OP definitions and bi_op/op fields

2016-01-12 Thread Christoph Hellwig
On Sat, Jan 09, 2016 at 06:56:14PM -0600, Mike Christie wrote: > I did not change the flush related code until the last patches. I added > REQ_OP_FLUSH in patch: Oh, I missed that. -- Site24x7 APM Insight: Get Deep Visibi

[f2fs-dev] [PATCH 31/35] block, fs: remove old REQ definitions.

2016-01-12 Thread mchristi
From: Mike Christie We no longer use REQ_WRITE. REQ_WRITE_SAME and REQ_DISCARD, so this patch removes them. Signed-off-by: Mike Christie --- include/linux/blk_types.h | 21 ++--- include/linux/fs.h | 21 +++-- include/trace/events/f2fs.h | 1 - 3 fil

[f2fs-dev] [PATCH 23/35] md/raid: set bi_op to REQ_OP

2016-01-12 Thread mchristi
From: Mike Christie This patch has md/raid set the bio bi_op to a REQ_OP, and rq_flag_bits to bi_rw. This patch is compile tested only. Signed-off-by: Mike Christie --- drivers/md/bitmap.c | 2 +- drivers/md/dm-raid.c | 5 +++-- drivers/md/md.c | 11 +++ drivers/md

[f2fs-dev] [PATCH 12/35] gfs2: set bi_op to REQ_OP

2016-01-12 Thread mchristi
From: Mike Christie This patch has gfs2 set the bio bi_op to a REQ_OP, and rq_flag_bits to bi_rw. This patch is compile tested only. v2: Bob, I did not add your signed off, because there was the gfs2_submit_bhs changes since last time you reviewed it. Signed-off-by: Mike Christie --- fs/gfs

Re: [f2fs-dev] [dm-devel] [PATCH 02/35] block: add REQ_OP definitions and bi_op/op fields

2016-01-12 Thread Mike Christie
On 01/09/2016 06:56 PM, Mike Christie wrote: > On 01/09/2016 07:37 AM, Christoph Hellwig wrote: >> Seems like this is missing REQ_OP_FLUSH, which still hides as a write? >> Oh yeah, to answer the second part of your question, REQ_OP_FLUSH is only a flush operation like what request_fn drivers want

[f2fs-dev] [PATCH 00/35 v3] eparate operations from flags in the bio/request structs

2016-01-12 Thread mchristi
The following patches begin to cleanup the request->cmd_flags and bio->bi_rw mess. We currently use cmd_flags to specify the operation, attributes and state of the request. For bi_rw we use it for similar info and also the priority but then also have another bi_flags field for state. At some point,

[f2fs-dev] [PATCH 30/35] block, fs, drivers: do not test bi_rw for REQ_OPs

2016-01-12 Thread mchristi
From: Mike Christie We no longer use the bio->bi_rw field for REQ_OPs: REQ_WRITE, REQ_DISCARD, REQ_WRITE_SAME, so this patch stops checking for them in bi_rw and also removes the related compat code. v2: 1. Remove compat code in __get_request. Signed-off-by: Mike Christie --- block/bio.c

[f2fs-dev] [PATCH 28/35] blktrace: get op from req->op/bio->bi_op

2016-01-12 Thread mchristi
From: Mike Christie The bio and request struct now store the operation in bio->bi_op/request->op. This patch has blktrace not check bi_rw/cmd_flags. This patch is only compile tested. Signed-off-by: Mike Christie --- include/linux/blktrace_api.h | 2 +- include/trace/events/bcache.h | 12 ++

[f2fs-dev] [PATCH 19/35] dm: set bi_op to REQ_OP

2016-01-12 Thread mchristi
From: Mike Christie This patch has dm set the bio bi_op to a REQ_OP, and rq_flag_bits to bi_rw. I did some basic dm tests, but I think this patch should be considered compile tested only. I have not tested all the dm targets and I did not stress every code path I have touched. Signed-off-by: Mi

[f2fs-dev] [PATCH 03/35] block, fs, mm, drivers: set bi_op to REQ_OP

2016-01-12 Thread mchristi
From: Mike Christie This patch converts the simple bi_rw use cases in the block, drivers, mm and fs code to use bi_op for a REQ_OP and bi_rw for rq_flag_bits. These should be simple one liner cases, so I just did them in one patch. The next patches handle the more complicated cases in a module p

[f2fs-dev] [PATCH 34/35] block: add QUEUE_FLAGs for flush and fua

2016-01-12 Thread mchristi
From: Mike Christie The last patch added a REQ_OP_FLUSH for request_fn drivers and the next patch renames REQ_FLUSH to REQ_PREFLUSH which will be used by file systems and make_request_fn drivers. This leaves REQ_FLUSH/REQ_FUA defined for drivers to tell the block layer if flush/fua is supported.

[f2fs-dev] [PATCH 11/35] f2fs: set bi_op to REQ_OP

2016-01-12 Thread mchristi
From: Mike Christie This patch has f2fs set the bio bi_op to a REQ_OP, and rq_flag_bits to bi_rw. This patch is compile tested only. Signed-off-by: Mike Christie --- fs/f2fs/checkpoint.c| 10 ++ fs/f2fs/data.c | 33 - fs/f2fs/f2fs.h

[f2fs-dev] [PATCH 25/35] target: set bi_op to REQ_OP

2016-01-12 Thread mchristi
From: Mike Christie This patch has the target modules set the bio bi_op to a REQ_OP, and rq_flag_bits to bi_rw. This patch is compile tested only. Signed-off-by: Mike Christie Acked-by: Nicholas Bellinger --- drivers/target/target_core_iblock.c | 38 ++--- dri

[f2fs-dev] [PATCH 01/35] block/fs/drivers: remove rw argument from submit_bio

2016-01-12 Thread mchristi
From: Mike Christie This has callers of submit_bio/submit_bio_wait set the bio->bi_rw instead of passing it in. This makes that use the same as generic_make_request and how we set the other bio fields. v2. 1. Set bi_rw instead of ORing it. For cloned bios, I still OR it to keep the old behavior

[f2fs-dev] [PATCH 17/35] ocfs2: set bi_op to REQ_OP

2016-01-12 Thread mchristi
From: Mike Christie This patch has ocfs2 set the bio bi_op to a REQ_OP, and rq_flag_bits to bi_rw. This patch is compile tested only. Signed-off-by: Mike Christie --- fs/ocfs2/cluster/heartbeat.c | 11 +++ 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/fs/ocfs2/cluster/

[f2fs-dev] [PATCH 18/35] pm: set bi_op to REQ_OP

2016-01-12 Thread mchristi
From: Mike Christie This patch has the pm swap code set the bio bi_op to a REQ_OP, and rq_flag_bits to bi_rw. This patch is compile tested only. Signed-off-by: Mike Christie --- kernel/power/swap.c | 31 +++ 1 file changed, 19 insertions(+), 12 deletions(-) diff -

[f2fs-dev] [PATCH 06/35] direct-io: set bi_op to REQ_OP

2016-01-12 Thread mchristi
From: Mike Christie This patch has the dio code set the bio bi_op to a REQ_OP. It also begins to convert btrfs's dio_submit_t related code, because of the submit_io callout use. In the btrfs_submit_direct change, I OR'd the op and flag back together. It is only temporary. The next patch will com

[f2fs-dev] [PATCH 22/35] drbd: set bi_op to REQ_OP

2016-01-12 Thread mchristi
From: Mike Christie This patch has drbd set the bio bi_op to a REQ_OP, and rq_flag_bits to bi_rw. Lars and Philip, I might have split this patch up a little weird. Thisi patch handles setting up the bio, and then patch 30 (0030-block-fs-drivers-do-not-test-bi_rw-for-REQ_OPs.patch) handles where

[f2fs-dev] [PATCH 08/35] btrfs: set bi_op tp REQ_OP

2016-01-12 Thread mchristi
From: Mike Christie This patch has btrfs set the bio bi_op to a REQ_OP, and rq_flag_bits to bi_rw. Signed-off-by: Mike Christie --- fs/btrfs/check-integrity.c | 19 +-- fs/btrfs/compression.c | 4 fs/btrfs/disk-io.c | 7 --- fs/btrfs/inode.c | 2

[f2fs-dev] [PATCH 05/35] fs: have ll_rw_block users pass in op and flags separately

2016-01-12 Thread mchristi
From: Mike Christie This has ll_rw_block users pass in the operation and flags separately, so we can setup the bio->bi_op and bio-bi_rw flags. v2: 1. Fix for kbuild error in ll_rw_block comments. Signed-off-by: Mike Christie --- fs/buffer.c | 19 ++- fs/ext4/i

[f2fs-dev] [PATCH 14/35] hfsplus: set bi_op to REQ_OP

2016-01-12 Thread mchristi
From: Mike Christie This patch has hfsplus set the bio bi_op to a REQ_OP, and rq_flag_bits to bi_rw. This patch is compile tested only. Signed-off-by: Mike Christie --- fs/hfsplus/hfsplus_fs.h | 2 +- fs/hfsplus/part_tbl.c | 5 +++-- fs/hfsplus/super.c | 6 -- fs/hfsplus/wrapper

Re: [f2fs-dev] [dm-devel] [PATCH 02/35] block: add REQ_OP definitions and bi_op/op fields

2016-01-12 Thread Mike Christie
On 01/09/2016 07:37 AM, Christoph Hellwig wrote: > Seems like this is missing REQ_OP_FLUSH, which still hides as a write? > I might have misunderstood what you wanted or am misunderstanding you now. I did not change the flush related code until the last patches. I added REQ_OP_FLUSH in patch: [

[f2fs-dev] [PATCH 29/35] ide cd: do not set REQ_WRITE on requests.

2016-01-12 Thread mchristi
From: Mike Christie The block layer will set the correct READ/WRITE operation flags/fields when creating a request, so there is not need for drivers to set the REQ_WRITE flag. This patch is compile tested only. Signed-off-by: Mike Christie --- drivers/ide/ide-cd_ioctl.c | 3 --- 1 file change

Re: [f2fs-dev] [dm-devel] [PATCH 02/35] block: add REQ_OP definitions and bi_op/op fields

2016-01-12 Thread Christoph Hellwig
On Sat, Jan 09, 2016 at 07:21:12PM -0600, Mike Christie wrote: > Oh yeah, to answer the second part of your question, REQ_OP_FLUSH is > only a flush operation like what request_fn drivers wanted. And that's the odd part that trips me up. > > REQ_PREFLUSH can be set with a REQ_OP_WRITE bio when f

[f2fs-dev] [PATCH 21/35] bcache: set bi_op to REQ_OP

2016-01-12 Thread mchristi
From: Mike Christie This patch has bcache set the bio bi_op to a REQ_OP, and rq_flag_bits to bi_rw. This patch is compile tested only Signed-off-by: Mike Christie --- drivers/md/bcache/btree.c | 2 ++ drivers/md/bcache/debug.c | 2 ++ drivers/md/bcache/io.c| 2 +- drivers/m

[f2fs-dev] [PATCH 15/35] mpage: set bi_op to REQ_OP

2016-01-12 Thread mchristi
From: Mike Christie This patch has the mpage.c code set the bio bi_op to a REQ_OP, and rq_flag_bits to bi_rw. I have run xfstest with xfs, but I am not sure if I have stressed these code paths well. Signed-off-by: Mike Christie --- fs/mpage.c | 41 + 1

[f2fs-dev] [PATCH 32/35] block: shrink bi_rw and bi_op

2016-01-12 Thread mchristi
From: Mike Christie There is no need for bi_op/op and bi_rw to be so large now, so this patch shrinks them. Signed-off-by: Mike Christie --- block/blk-core.c | 2 +- drivers/md/dm-flakey.c | 2 +- drivers/md/raid5.c | 13 +++-- fs/btrfs/check-integrity.c | 4 ++

[f2fs-dev] [PATCH 24/35] xen: set bi_op to REQ_OP

2016-01-12 Thread mchristi
From: Mike Christie This patch has xen set the bio bi_op to a REQ_OP, and rq_flag_bits to bi_rw. This patch is compile tested only. Signed-off-by: Mike Christie --- drivers/block/xen-blkback/blkback.c | 29 + 1 file changed, 17 insertions(+), 12 deletions(-) diff

Re: [f2fs-dev] [PATCH 01/35] block/fs/drivers: remove rw argument from submit_bio

2016-01-12 Thread Mike Christie
On 01/09/2016 07:34 AM, Christoph Hellwig wrote: >> count); >> > diff --git a/block/blk-flush.c b/block/blk-flush.c >> > index 9c423e5..e092e13 100644 >> > --- a/block/blk-flush.c >> > +++ b/block/blk-flush.c >> > @@ -484,8 +484,9 @@ int blkdev_issue_flush(struct block_

[f2fs-dev] [PATCH 33/35] block, drivers: add REQ_OP_FLUSH operation

2016-01-12 Thread mchristi
From: Mike Christie This adds a REQ_OP_FLUSH operation that is sent to request_fn based drivers by the block layer's flush code, instead of sending requests with the request->cmd_flags REQ_FLUSH bit set. For the following 3 flush related patches, I have not tested every driver. I have only teste

[f2fs-dev] [PATCH 07/35] btrfs: have submit_one_bio users setup bio bi_op

2016-01-12 Thread mchristi
From: Mike Christie This patch has btrfs's submit_one_bio callers set the bio->bi_op to a REQ_OP and the bi_rw to rq_flag_bits. The next patches will continue to convert btrfs, so submit_bio_hook and merge_bio_hook related code will be modified to take only the bio. I did not do it in this patch

[f2fs-dev] [PATCH 35/35] block, drivers, fs: rename REQ_FLUSH to REQ_PREFLUSH

2016-01-12 Thread mchristi
From: Mike Christie To avoid confusion between REQ_OP_FLUSH, which is handled by request_fn drivers, and upper layers requesting the block layer perform a flush sequence along with possibly a WRITE, this patch renames REQ_FLUSH to REQ_PREFLUSH. Signed-off-by: Mike Christie --- Documentation/bl

[f2fs-dev] [PATCH 13/35] xfs: set bi_op to REQ_OP

2016-01-12 Thread mchristi
From: Mike Christie This patch has xfs set the bio bi_op to a REQ_OP, and rq_flag_bits to bi_rw. Signed-off-by: Mike Christie --- fs/xfs/xfs_aops.c | 3 ++- fs/xfs/xfs_buf.c | 27 +++ 2 files changed, 17 insertions(+), 13 deletions(-) diff --git a/fs/xfs/xfs_aops.c b

[f2fs-dev] [PATCH 20/35] dm: pass dm stats data dir instead of bi_rw

2016-01-12 Thread mchristi
From: Mike Christie It looks like dm stats cares about the data direction (READ vs WRITE) and does not need the bio/request flags. Commands like REQ_FLUSH, REQ_DISCARD and REQ_WRITE_SAME are currently always set with REQ_WRITE, so the extra check for REQ_DISCARD in dm_stats_account_io is not need

[f2fs-dev] [PATCH 04/35] fs: have submit_bh users pass in op and flags separately

2016-01-12 Thread mchristi
From: Mike Christie This has submit_bh users pass in the operation and flags separately, so we can setup the bio->bi_op and bio-bi_rw flags. Signed-off-by: Mike Christie --- drivers/md/bitmap.c | 4 ++-- fs/btrfs/check-integrity.c | 24 ++-- fs/btrfs/check-integrity.h

[f2fs-dev] [PATCH 09/35] btrfs: update __btrfs_map_block for bi_op transition

2016-01-12 Thread mchristi
From: Mike Christie We no longer pass in a bitmap of rq_flag_bits bits to __btrfs_map_block. It will always be a REQ_OP, or the btrfs specific REQ_GET_READ_MIRRORS, so this drops the bit tests. Signed-off-by: Mike Christie --- fs/btrfs/extent-tree.c | 2 +- fs/btrfs/inode.c | 2 +- fs/