[LU-10398] osd_ldiskfs_write_rec() can do partial write Created: 15/Dec/17  Updated: 30/Mar/21  Resolved: 19/Dec/18

Status: Resolved
Project: Lustre
Component/s: None
Affects Version/s: None
Fix Version/s: None

Type: Bug Priority: Major
Reporter: Mikhail Pershin Assignee: Mikhail Pershin
Resolution: Not a Bug Votes: 0
Labels: None

Severity: 3
Rank (Obsolete): 9223372036854775807

 Description   

osd_ldiskfs_write_rec() is used on server for various local writes, most often for llog. It does write by pages so if chunk of data is crossing page boundary then first part can be written but second can fail, e.g. due to -ENOSPC. This cause partially written data which is corruption in most cases, especially with llog.



 Comments   
Comment by Gerrit Updater [ 17/Dec/17 ]

Mike Pershin (mike.pershin@intel.com) uploaded a new patch: https://review.whamcloud.com/30565
Subject: LU-10398 osd: undo partially written data
Project: fs/lustre-release
Branch: master
Current Patch Set: 1
Commit: db91ea51513bcbb94bc60a494394e30f4028cc4c

Comment by Mikhail Pershin [ 17/Dec/17 ]

I've just added reproducer and quick solution. This is to be discussed.

Comment by Mikhail Pershin [ 21/Dec/17 ]

After discussion with Alex it was decided that llog should resolve this but not OSD. Such situation is possible in llog only and it is hard to decide about proper solution in OSD itself.

Generated at Sat Feb 10 02:34:43 UTC 2024 using Jira 9.4.14#940014-sha1:734e6822bbf0d45eff9af51f82432957f73aa32c.