diff mbox

[7/7] ext4: add support for write stream IDs

Message ID 1427296070-8472-8-git-send-email-axboe@fb.com (mailing list archive)
State New, archived
Headers show

Commit Message

Jens Axboe March 25, 2015, 3:07 p.m. UTC
Signed-off-by: Jens Axboe <axboe@fb.com>
---
 fs/ext4/page-io.c | 1 +
 1 file changed, 1 insertion(+)

Comments

Ming Lin-SSI March 26, 2015, 8:34 p.m. UTC | #1
> -----Original Message-----
> From: Jens Axboe [mailto:axboe@fb.com]
> Sent: Wednesday, March 25, 2015 8:08 AM
> To: linux-kernel@vger.kernel.org; linux-fsdevel@vger.kernel.org
> Cc: Ming Lin-SSI; david@fromorbit.com; Jens Axboe
> Subject: [PATCH 7/7] ext4: add support for write stream IDs
> 
> Signed-off-by: Jens Axboe <axboe@fb.com>
> ---
>  fs/ext4/page-io.c | 1 +
>  1 file changed, 1 insertion(+)
> 
> diff --git a/fs/ext4/page-io.c b/fs/ext4/page-io.c index
> b24a2541a9ba..f642d0b87a32 100644
> --- a/fs/ext4/page-io.c
> +++ b/fs/ext4/page-io.c
> @@ -390,6 +390,7 @@ submit_and_retry:
>  		ret = io_submit_init_bio(io, bh);
>  		if (ret)
>  			return ret;
> +		bio_set_streamid(io->io_bio, inode_streamid(inode));

For "writeback" and "ordered" journal mode, it should be OK.

But for "journal" journal mode, 
Step1: data written to journal
Step2: data written from journal to fs

Do we need other code to carry stream_id in step2?

Thanks,
Ming

>  	}
>  	ret = bio_add_page(io->io_bio, bh->b_page, bh->b_size,
> bh_offset(bh));
>  	if (ret != bh->b_size)
> --
> 1.9.1

--
To unsubscribe from this list: send the line "unsubscribe linux-fsdevel" in
the body of a message to majordomo@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html
Jens Axboe March 26, 2015, 8:39 p.m. UTC | #2
On 03/26/2015 02:34 PM, Ming Lin-SSI wrote:
>> -----Original Message-----
>> From: Jens Axboe [mailto:axboe@fb.com]
>> Sent: Wednesday, March 25, 2015 8:08 AM
>> To: linux-kernel@vger.kernel.org; linux-fsdevel@vger.kernel.org
>> Cc: Ming Lin-SSI; david@fromorbit.com; Jens Axboe
>> Subject: [PATCH 7/7] ext4: add support for write stream IDs
>>
>> Signed-off-by: Jens Axboe <axboe@fb.com>
>> ---
>>  fs/ext4/page-io.c | 1 +
>>  1 file changed, 1 insertion(+)
>>
>> diff --git a/fs/ext4/page-io.c b/fs/ext4/page-io.c index
>> b24a2541a9ba..f642d0b87a32 100644
>> --- a/fs/ext4/page-io.c
>> +++ b/fs/ext4/page-io.c
>> @@ -390,6 +390,7 @@ submit_and_retry:
>>  		ret = io_submit_init_bio(io, bh);
>>  		if (ret)
>>  			return ret;
>> +		bio_set_streamid(io->io_bio, inode_streamid(inode));
> 
> For "writeback" and "ordered" journal mode, it should be OK.
> 
> But for "journal" journal mode, 
> Step1: data written to journal
> Step2: data written from journal to fs
> 
> Do we need other code to carry stream_id in step2?

For either mode, arguably the journal should be written with its own
stream ID. But that's a subject that the filesystem guys need to tackle,
once the support is one.

For the case of maintaining stream ID when in data=journal mode and
copying the data out, I doubt that a use case that anyone would care
about. If they do, the ext4/3 guys would need to sort that out.

I'll update the commit message to reflect that, it is a bit under
explained at the moment.
diff mbox

Patch

diff --git a/fs/ext4/page-io.c b/fs/ext4/page-io.c
index b24a2541a9ba..f642d0b87a32 100644
--- a/fs/ext4/page-io.c
+++ b/fs/ext4/page-io.c
@@ -390,6 +390,7 @@  submit_and_retry:
 		ret = io_submit_init_bio(io, bh);
 		if (ret)
 			return ret;
+		bio_set_streamid(io->io_bio, inode_streamid(inode));
 	}
 	ret = bio_add_page(io->io_bio, bh->b_page, bh->b_size, bh_offset(bh));
 	if (ret != bh->b_size)