Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit fb1cb7b2 authored by Linus Torvalds's avatar Linus Torvalds
Browse files

Merge branch 'for-linus' of git://oss.sgi.com/xfs/xfs

* 'for-linus' of git://oss.sgi.com/xfs/xfs:
  xfs: remove incorrect assert in xfs_vm_writepage
  xfs: use hlist_add_fake
  xfs: fix a few compiler warnings with CONFIG_XFS_QUOTA=n
  xfs: tell lockdep about parent iolock usage in filestreams
  xfs: move delayed write buffer trace
  xfs: fix per-ag reference counting in inode reclaim tree walking
  xfs: xfs_ioctl: fix information leak to userland
  xfs: remove experimental tag from the delaylog option
parents fe7e96f6 ece413f5
Loading
Loading
Loading
Loading
+0 −11
Original line number Original line Diff line number Diff line
@@ -794,17 +794,6 @@ designed.


Roadmap:
Roadmap:


2.6.37 Remove experimental tag from mount option
	=> should be roughly 6 months after initial merge
	=> enough time to:
		=> gain confidence and fix problems reported by early
		   adopters (a.k.a. guinea pigs)
		=> address worst performance regressions and undesired
		   behaviours
		=> start tuning/optimising code for parallelism
		=> start tuning/optimising algorithms consuming
		   excessive CPU time

2.6.39 Switch default mount option to use delayed logging
2.6.39 Switch default mount option to use delayed logging
	=> should be roughly 12 months after initial merge
	=> should be roughly 12 months after initial merge
	=> enough time to shake out remaining problems before next round of
	=> enough time to shake out remaining problems before next round of
+4 −3
Original line number Original line Diff line number Diff line
@@ -1111,11 +1111,12 @@ xfs_vm_writepage(
			uptodate = 0;
			uptodate = 0;


		/*
		/*
		 * A hole may still be marked uptodate because discard_buffer
		 * set_page_dirty dirties all buffers in a page, independent
		 * leaves the flag set.
		 * of their state.  The dirty state however is entirely
		 * meaningless for holes (!mapped && uptodate), so skip
		 * buffers covering holes here.
		 */
		 */
		if (!buffer_mapped(bh) && buffer_uptodate(bh)) {
		if (!buffer_mapped(bh) && buffer_uptodate(bh)) {
			ASSERT(!buffer_dirty(bh));
			imap_valid = 0;
			imap_valid = 0;
			continue;
			continue;
		}
		}
+1 −1
Original line number Original line Diff line number Diff line
@@ -1781,7 +1781,6 @@ xfs_buf_delwri_split(
	INIT_LIST_HEAD(list);
	INIT_LIST_HEAD(list);
	spin_lock(dwlk);
	spin_lock(dwlk);
	list_for_each_entry_safe(bp, n, dwq, b_list) {
	list_for_each_entry_safe(bp, n, dwq, b_list) {
		trace_xfs_buf_delwri_split(bp, _RET_IP_);
		ASSERT(bp->b_flags & XBF_DELWRI);
		ASSERT(bp->b_flags & XBF_DELWRI);


		if (!XFS_BUF_ISPINNED(bp) && !xfs_buf_cond_lock(bp)) {
		if (!XFS_BUF_ISPINNED(bp) && !xfs_buf_cond_lock(bp)) {
@@ -1795,6 +1794,7 @@ xfs_buf_delwri_split(
					 _XBF_RUN_QUEUES);
					 _XBF_RUN_QUEUES);
			bp->b_flags |= XBF_WRITE;
			bp->b_flags |= XBF_WRITE;
			list_move_tail(&bp->b_list, list);
			list_move_tail(&bp->b_list, list);
			trace_xfs_buf_delwri_split(bp, _RET_IP_);
		} else
		} else
			skipped++;
			skipped++;
	}
	}
+1 −1
Original line number Original line Diff line number Diff line
@@ -416,7 +416,7 @@ xfs_attrlist_by_handle(
	if (IS_ERR(dentry))
	if (IS_ERR(dentry))
		return PTR_ERR(dentry);
		return PTR_ERR(dentry);


	kbuf = kmalloc(al_hreq.buflen, GFP_KERNEL);
	kbuf = kzalloc(al_hreq.buflen, GFP_KERNEL);
	if (!kbuf)
	if (!kbuf)
		goto out_dput;
		goto out_dput;


+2 −1
Original line number Original line Diff line number Diff line
@@ -762,7 +762,8 @@ xfs_setup_inode(
	inode->i_state = I_NEW;
	inode->i_state = I_NEW;


	inode_sb_list_add(inode);
	inode_sb_list_add(inode);
	insert_inode_hash(inode);
	/* make the inode look hashed for the writeback code */
	hlist_add_fake(&inode->i_hash);


	inode->i_mode	= ip->i_d.di_mode;
	inode->i_mode	= ip->i_d.di_mode;
	inode->i_nlink	= ip->i_d.di_nlink;
	inode->i_nlink	= ip->i_d.di_nlink;
Loading