Commit b36ddb92 authored by Linus Torvalds's avatar Linus Torvalds
Browse files
Pull orangefs fix from Mike Marshall:
 "Fix for orangefs page writeout counting"

* tag 'for-linus-6.15-ofs2' of git://git.kernel.org/pub/scm/linux/kernel/git/hubcap/linux:
  orangefs: adjust counting code to recover from 665575cf
parents a5806cd5 219bf6ed
Loading
Loading
Loading
Loading
+5 −4
Original line number Diff line number Diff line
@@ -32,12 +32,13 @@ static int orangefs_writepage_locked(struct folio *folio,
	len = i_size_read(inode);
	if (folio->private) {
		wr = folio->private;
		WARN_ON(wr->pos >= len);
		off = wr->pos;
		if (off + wr->len > len)
		if ((off + wr->len > len) && (off <= len))
			wlen = len - off;
		else
			wlen = wr->len;
		if (wlen == 0)
			wlen = wr->len;
	} else {
		WARN_ON(1);
		off = folio_pos(folio);
@@ -46,8 +47,6 @@ static int orangefs_writepage_locked(struct folio *folio,
		if (wlen > len - off)
			wlen = len - off;
	}
	/* Should've been handled in orangefs_invalidate_folio. */
	WARN_ON(off == len || off + wlen > len);

	WARN_ON(wlen == 0);
	bvec_set_folio(&bv, folio, wlen, offset_in_folio(folio, off));
@@ -320,6 +319,8 @@ static int orangefs_write_begin(struct file *file,
			wr->len += len;
			goto okay;
		} else {
			wr->pos = pos;
			wr->len = len;
			ret = orangefs_launder_folio(folio);
			if (ret)
				return ret;