diff --git a/drivers/block/rbd.c b/drivers/block/rbd.c index a75fe93a25b173db342f033b2697e86638506f39..5ab9f55d3e0cb08ea4323fdc74159e5d9899dccb 100644 --- a/drivers/block/rbd.c +++ b/drivers/block/rbd.c @@ -1684,7 +1684,9 @@ static int rbd_header_add_snap(struct rbd_device *dev, if (ret < 0) return ret; - dev->header.snapc->seq = new_snapid; + down_write(&dev->header_rwsem); + dev->header.snapc->seq = new_snapid; + up_write(&dev->header_rwsem); return 0; bad: