Merge "resources: Deprecate module "jquery.appear""
[lhc/web/wiklou.git] / includes / revisiondelete / RevDelList.php
index 9eff0a7..48604e1 100644 (file)
@@ -240,7 +240,7 @@ abstract class RevDelList extends RevisionListBase {
                }
 
                if ( $status->successCount == 0 ) {
-                       $dbw->rollback( __METHOD__ );
+                       $dbw->endAtomic( __METHOD__ );
                        return $status;
                }
 
@@ -250,8 +250,8 @@ abstract class RevDelList extends RevisionListBase {
                // Move files, if there are any
                $status->merge( $this->doPreCommitUpdates() );
                if ( !$status->isOK() ) {
-                       // Fatal error, such as no configured archive directory
-                       $dbw->rollback( __METHOD__ );
+                       // Fatal error, such as no configured archive directory or I/O failures
+                       wfGetLBFactory()->rollbackMasterChanges( __METHOD__ );
                        return $status;
                }
 
@@ -270,11 +270,14 @@ abstract class RevDelList extends RevisionListBase {
                        ]
                );
 
-               // Clear caches
-               $that = $this;
-               $dbw->onTransactionIdle( function() use ( $that, $visibilityChangeMap ) {
-                       $that->doPostCommitUpdates( $visibilityChangeMap );
-               } );
+               // Clear caches after commit
+               DeferredUpdates::addCallableUpdate(
+                       function () use ( $visibilityChangeMap ) {
+                               $this->doPostCommitUpdates( $visibilityChangeMap );
+                       },
+                       DeferredUpdates::PRESEND,
+                       $dbw
+               );
 
                $dbw->endAtomic( __METHOD__ );