Re: [PATCH 5/5] ceph: fold ceph_update_writeable_page into ceph_write_begin

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



We're seeing file corruption while running 5.10, bisected to 1cc1699070bd:

>> +static int ceph_write_begin(struct file *file, struct address_space *mapping,
>> +			    loff_t pos, unsigned len, unsigned flags,
>> +			    struct page **pagep, void **fsdata)

<snip>

>> +		/*
>> +		 * In some cases we don't need to read at all:
>> +		 * - full page write
>> +		 * - write that lies completely beyond EOF
>> +		 * - write that covers the the page from start to EOF or beyond it
>> +		 */
>> +		if ((pos_in_page == 0 && len == PAGE_SIZE) ||
>> +		    (pos >= i_size_read(inode)) ||

Shouldn't this be '((pos & PAGE_MASK) >= i_size_read(inode)) ||' ?

Seems like fs/netfs/read_helper.c currently has the same issue?

>> +		    (pos_in_page == 0 && (pos + len) >= i_size_read(inode))) {
>> +			zero_user_segments(page, 0, pos_in_page,
>> +					   pos_in_page + len, PAGE_SIZE);
>> +			break;
>> +		}

-- 
Andrew W. Elble
Infrastructure Engineer
Information and Technology Services
Rochester Institute of Technology
tel: (585)-475-2411 | aweits@xxxxxxx
PGP: BFAD 8461 4CCF DC95 DA2C B0EB 965B 082E 863E C912



[Index of Archives]     [CEPH Users]     [Ceph Large]     [Ceph Dev]     [Information on CEPH]     [Linux BTRFS]     [Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux