aboutsummaryrefslogtreecommitdiffstats
path: root/fs
diff options
context:
space:
mode:
Diffstat (limited to 'fs')
-rw-r--r--fs/block_dev.c10
-rw-r--r--fs/ioctl.c6
2 files changed, 13 insertions, 3 deletions
diff --git a/fs/block_dev.c b/fs/block_dev.c
index 1d9c9f3754f8..b48c41bf0f86 100644
--- a/fs/block_dev.c
+++ b/fs/block_dev.c
@@ -235,7 +235,10 @@ struct super_block *freeze_bdev(struct block_device *bdev)
235 sb = get_active_super(bdev); 235 sb = get_active_super(bdev);
236 if (!sb) 236 if (!sb)
237 goto out; 237 goto out;
238 error = freeze_super(sb); 238 if (sb->s_op->freeze_super)
239 error = sb->s_op->freeze_super(sb);
240 else
241 error = freeze_super(sb);
239 if (error) { 242 if (error) {
240 deactivate_super(sb); 243 deactivate_super(sb);
241 bdev->bd_fsfreeze_count--; 244 bdev->bd_fsfreeze_count--;
@@ -272,7 +275,10 @@ int thaw_bdev(struct block_device *bdev, struct super_block *sb)
272 if (!sb) 275 if (!sb)
273 goto out; 276 goto out;
274 277
275 error = thaw_super(sb); 278 if (sb->s_op->thaw_super)
279 error = sb->s_op->thaw_super(sb);
280 else
281 error = thaw_super(sb);
276 if (error) { 282 if (error) {
277 bdev->bd_fsfreeze_count++; 283 bdev->bd_fsfreeze_count++;
278 mutex_unlock(&bdev->bd_fsfreeze_mutex); 284 mutex_unlock(&bdev->bd_fsfreeze_mutex);
diff --git a/fs/ioctl.c b/fs/ioctl.c
index 8ac3fad36192..77c9a7812542 100644
--- a/fs/ioctl.c
+++ b/fs/ioctl.c
@@ -518,10 +518,12 @@ static int ioctl_fsfreeze(struct file *filp)
518 return -EPERM; 518 return -EPERM;
519 519
520 /* If filesystem doesn't support freeze feature, return. */ 520 /* If filesystem doesn't support freeze feature, return. */
521 if (sb->s_op->freeze_fs == NULL) 521 if (sb->s_op->freeze_fs == NULL && sb->s_op->freeze_super == NULL)
522 return -EOPNOTSUPP; 522 return -EOPNOTSUPP;
523 523
524 /* Freeze */ 524 /* Freeze */
525 if (sb->s_op->freeze_super)
526 return sb->s_op->freeze_super(sb);
525 return freeze_super(sb); 527 return freeze_super(sb);
526} 528}
527 529
@@ -533,6 +535,8 @@ static int ioctl_fsthaw(struct file *filp)
533 return -EPERM; 535 return -EPERM;
534 536
535 /* Thaw */ 537 /* Thaw */
538 if (sb->s_op->thaw_super)
539 return sb->s_op->thaw_super(sb);
536 return thaw_super(sb); 540 return thaw_super(sb);
537} 541}
538 542