diff --git a/app/uploaders/file_uploader.rb b/app/uploaders/file_uploader.rb
index d6ccf0dc92c13df48001c569942750c71b5ab5c6..d2783ce5b2f8452bf568301b2c53e7cbe9caffbd 100644
--- a/app/uploaders/file_uploader.rb
+++ b/app/uploaders/file_uploader.rb
@@ -38,10 +38,6 @@ class FileUploader < GitlabUploader
     File.join(dynamic_path_segment, @secret)
   end
 
-  def cache_dir
-    File.join(base_dir, 'tmp', @project.path_with_namespace, @secret)
-  end
-
   def model
     project
   end
diff --git a/changelogs/unreleased/clean_carrierwave_tempfiles.yml b/changelogs/unreleased/clean_carrierwave_tempfiles.yml
new file mode 100644
index 0000000000000000000000000000000000000000..53fa69700ffde9fc53d11e38df2085ce82c95179
--- /dev/null
+++ b/changelogs/unreleased/clean_carrierwave_tempfiles.yml
@@ -0,0 +1,4 @@
+---
+title: Periodically clean up temporary upload files to recover storage space
+merge_request: 9466
+author: blackst0ne
diff --git a/db/post_migrate/20170408033905_remove_old_cache_directories.rb b/db/post_migrate/20170408033905_remove_old_cache_directories.rb
new file mode 100644
index 0000000000000000000000000000000000000000..b23b52896b90f0b9dbb9fabea5d71afab83dc159
--- /dev/null
+++ b/db/post_migrate/20170408033905_remove_old_cache_directories.rb
@@ -0,0 +1,23 @@
+# See http://doc.gitlab.com/ce/development/migration_style_guide.html
+# for more information on how to write migrations for GitLab.
+
+# Remove all files from old custom carrierwave's cache directories.
+# See https://gitlab.com/gitlab-org/gitlab-ce/merge_requests/9466
+
+class RemoveOldCacheDirectories < ActiveRecord::Migration
+  include Gitlab::Database::MigrationHelpers
+
+  DOWNTIME = false
+
+  disable_ddl_transaction!
+
+  def up
+    # FileUploader cache.
+    FileUtils.rm_rf(Dir[Rails.root.join('public', 'uploads', 'tmp', '*')])
+  end
+
+  def down
+    # Old cache is not supposed to be recoverable.
+    # So the down method is empty.
+  end
+end
diff --git a/db/schema.rb b/db/schema.rb
index d400c8233878bdbe2dc7ca16d2731634349e2f86..3422847d72985ee7cd5c37e04342067e7b793cbf 100644
--- a/db/schema.rb
+++ b/db/schema.rb
@@ -11,7 +11,7 @@
 #
 # It's strongly recommended that you check this file into your version control system.
 
-ActiveRecord::Schema.define(version: 20170407140450) do
+ActiveRecord::Schema.define(version: 20170408033905) do
   # These are extensions that must be enabled in order to support this database
   enable_extension "plpgsql"
   enable_extension "pg_trgm"