* remove it from the devices list and zero out the old super
         */
        if (clear_super && disk_super) {
+               u64 bytenr;
+               int i;
+
                /* make sure this device isn't detected as part of
                 * the FS anymore
                 */
                memset(&disk_super->magic, 0, sizeof(disk_super->magic));
                set_buffer_dirty(bh);
                sync_dirty_buffer(bh);
+
+               /* clear the mirror copies of super block on the disk
+                * being removed, 0th copy is been taken care above and
+                * the below would take of the rest
+                */
+               for (i = 1; i < BTRFS_SUPER_MIRROR_MAX; i++) {
+                       bytenr = btrfs_sb_offset(i);
+                       if (bytenr + BTRFS_SUPER_INFO_SIZE >=
+                                       i_size_read(bdev->bd_inode))
+                               break;
+
+                       brelse(bh);
+                       bh = __bread(bdev, bytenr / 4096,
+                                       BTRFS_SUPER_INFO_SIZE);
+                       if (!bh)
+                               continue;
+
+                       disk_super = (struct btrfs_super_block *)bh->b_data;
+
+                       if (btrfs_super_bytenr(disk_super) != bytenr ||
+                               btrfs_super_magic(disk_super) != BTRFS_MAGIC) {
+                               continue;
+                       }
+                       memset(&disk_super->magic, 0,
+                                               sizeof(disk_super->magic));
+                       set_buffer_dirty(bh);
+                       sync_dirty_buffer(bh);
+               }
        }
 
        ret = 0;