kernel/vfs: enable accounting for ro mounts
authorFrançois Tigeot <ftigeot@wolfpond.org>
Tue, 3 Jan 2012 13:10:16 +0000 (14:10 +0100)
committerFrançois Tigeot <ftigeot@wolfpond.org>
Tue, 3 Jan 2012 13:37:28 +0000 (14:37 +0100)
* Some filesystems may be first mounted read-only and then upgraded
  to read-write status

* The VFS layer has no provision for signaling VFSes of status change,
  mount-point specific initialization code can only be run for the
  initial mount

* VFS accounting was thus never enabled on a ro->rw mount point transition

* Bite the bullet and run vq_init() unconditionally for both read-only
  and read-write mounts, the cost is only a few variables set to NULL
  or zero anyway.

sys/kern/vfs_default.c

index 68bc7aa..f61e4e2 100644 (file)
@@ -1469,10 +1469,6 @@ vfs_stdac_init(struct mount *mp)
        const char* fs_type;
        int i, fstype_ok = 0;
 
-       /* if mounted fs is read-only, do not do anything */
-       if (mp->mnt_flag & MNT_RDONLY)
-               return (0);
-
        /* is mounted fs type one we want to do some accounting for ? */
        for (i=0; i<ACCOUNTING_NB_FSTYPES; i++) {
                fs_type = accounting_fstypes[i];
@@ -1495,10 +1491,6 @@ vfs_stdac_done(struct mount *mp)
        const char* fs_type;
        int i, fstype_ok = 0;
 
-       /* if mounted fs is read-only, do not do anything */
-       if (mp->mnt_flag & MNT_RDONLY)
-               return (0);
-
        /* is mounted fs type one we want to do some accounting for ? */
        for (i=0; i<ACCOUNTING_NB_FSTYPES; i++) {
                fs_type = accounting_fstypes[i];