|
@@ -894,11 +894,6 @@ out_invalidate:
|
|
|
* For unwritten space on the page we need to start the conversion to
|
|
|
* regular allocated space.
|
|
|
* For any other dirty buffer heads on the page we should flush them.
|
|
|
- *
|
|
|
- * If we detect that a transaction would be required to flush the page, we
|
|
|
- * have to check the process flags first, if we are already in a transaction
|
|
|
- * or disk I/O during allocations is off, we need to fail the writepage and
|
|
|
- * redirty the page.
|
|
|
*/
|
|
|
STATIC int
|
|
|
xfs_vm_writepage(
|
|
@@ -906,7 +901,6 @@ xfs_vm_writepage(
|
|
|
struct writeback_control *wbc)
|
|
|
{
|
|
|
struct inode *inode = page->mapping->host;
|
|
|
- int delalloc, unwritten;
|
|
|
struct buffer_head *bh, *head;
|
|
|
struct xfs_bmbt_irec imap;
|
|
|
xfs_ioend_t *ioend = NULL, *iohead = NULL;
|
|
@@ -938,15 +932,10 @@ xfs_vm_writepage(
|
|
|
goto redirty;
|
|
|
|
|
|
/*
|
|
|
- * We need a transaction if there are delalloc or unwritten buffers
|
|
|
- * on the page.
|
|
|
- *
|
|
|
- * If we need a transaction and the process flags say we are already
|
|
|
- * in a transaction, or no IO is allowed then mark the page dirty
|
|
|
- * again and leave the page as is.
|
|
|
+ * Given that we do not allow direct reclaim to call us, we should
|
|
|
+ * never be called while in a filesystem transaction.
|
|
|
*/
|
|
|
- xfs_count_page_state(page, &delalloc, &unwritten);
|
|
|
- if ((current->flags & PF_FSTRANS) && (delalloc || unwritten))
|
|
|
+ if (WARN_ON(current->flags & PF_FSTRANS))
|
|
|
goto redirty;
|
|
|
|
|
|
/* Is this page beyond the end of the file? */
|