@@ -622,9 +622,7 @@ static void zram_slot_free_notify(struct block_device *bdev,
struct zram *zram;
zram = bdev->bd_disk->private_data;
- down_write(&zram->lock);
zram_free_page(zram, index);
- up_write(&zram->lock);
zram_stat64_inc(zram, &zram->stats.notify_free);
}
@@ -92,9 +92,8 @@ struct zram {
void *compress_buffer;
struct table *table;
spinlock_t stat64_lock; /* protect 64-bit stats */
- struct rw_semaphore lock; /* protect compression buffers, table,
- * 32bit stat counters against concurrent
- * notifications, reads and writes */
+ struct rw_semaphore lock; /* protect compression buffers and table
+ * against concurrent read and writes */
struct request_queue *queue;
struct gendisk *disk;
int init_done;
BugLink: http://bugs.launchpad.net/bugs/1215513 This reverts commit 732edc72c595f552c02ffd8de7546890e02f997f, which was commit 57ab048532c0d975538cebd4456491b5c34248f4 upstream. This has been found to cause system lock ups when under high memory pressure. Signed-off-by: Luis Henriques <luis.henriques@canonical.com> --- drivers/staging/zram/zram_drv.c | 2 -- drivers/staging/zram/zram_drv.h | 5 ++--- 2 files changed, 2 insertions(+), 5 deletions(-)