Commit 371c1414 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge tag 'jfs-6.11' of github.com:kleikamp/linux-shaggy

Pull jfs updates from David Kleikamp:
 "Folio conversion from Matthew Wilcox and a few various fixes"

* tag 'jfs-6.11' of github.com:kleikamp/linux-shaggy:
  jfs: don't walk off the end of ealist
  jfs: Fix shift-out-of-bounds in dbDiscardAG
  jfs: Fix array-index-out-of-bounds in diFree
  jfs: fix null ptr deref in dtInsertEntry
  jfs: Remove use of folio error flag
  fs: Remove i_blocks_per_page
  jfs: Change metapage->page to metapage->folio
  jfs: Convert force_metapage to use a folio
  jfs: Convert inc_io to take a folio
  jfs: Convert page_to_mp to folio_to_mp
  jfs; Convert __invalidate_metapages to use a folio
  jfs: Convert dec_io to take a folio
  jfs: Convert drop_metapage and remove_metapage to take a folio
  jfs; Convert release_metapage to use a folio
  jfs: Convert insert_metapage() to take a folio
  jfs: Convert __get_metapage to use a folio
  jfs: Convert metapage_writepage to metapage_write_folio
  jfs: Convert metapage_read_folio to use folio APIs
parents ca83c61c d0fa70ac
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -1626,6 +1626,8 @@ s64 dbDiscardAG(struct inode *ip, int agno, s64 minlen)
		} else if (rc == -ENOSPC) {
			/* search for next smaller log2 block */
			l2nb = BLKSTOL2(nblocks) - 1;
			if (unlikely(l2nb < 0))
				break;
			nblocks = 1LL << l2nb;
		} else {
			/* Trim any already allocated blocks */
+2 −0
Original line number Diff line number Diff line
@@ -834,6 +834,8 @@ int dtInsert(tid_t tid, struct inode *ip,
	 * the full page.
	 */
	DT_GETSEARCH(ip, btstack->top, bn, mp, p, index);
	if (p->header.freelist == 0)
		return -EINVAL;

	/*
	 *	insert entry for new key
+4 −1
Original line number Diff line number Diff line
@@ -290,7 +290,7 @@ int diSync(struct inode *ipimap)
int diRead(struct inode *ip)
{
	struct jfs_sb_info *sbi = JFS_SBI(ip->i_sb);
	int iagno, ino, extno, rc;
	int iagno, ino, extno, rc, agno;
	struct inode *ipimap;
	struct dinode *dp;
	struct iag *iagp;
@@ -339,8 +339,11 @@ int diRead(struct inode *ip)

	/* get the ag for the iag */
	agstart = le64_to_cpu(iagp->agstart);
	agno = BLKTOAG(agstart, JFS_SBI(ip->i_sb));

	release_metapage(mp);
	if (agno >= MAXAG || agno < 0)
		return -EIO;

	rel_inode = (ino & (INOSPERPAGE - 1));
	pageno = blkno >> sbi->l2nbperpage;
+1 −1
Original line number Diff line number Diff line
@@ -1600,7 +1600,7 @@ void jfs_flush_journal(struct jfs_log *log, int wait)
					       mp, sizeof(struct metapage), 0);
				print_hex_dump(KERN_ERR, "page: ",
					       DUMP_PREFIX_ADDRESS, 16,
					       sizeof(long), mp->page,
					       sizeof(long), mp->folio,
					       sizeof(struct page), 0);
			} else
				print_hex_dump(KERN_ERR, "tblock:",
+157 −159

File changed.

Preview size limit exceeded, changes collapsed.

Loading