diff options
Diffstat (limited to 'fs/xfs/xfs_vfsops.c')
-rw-r--r-- | fs/xfs/xfs_vfsops.c | 59 |
1 files changed, 38 insertions, 21 deletions
diff --git a/fs/xfs/xfs_vfsops.c b/fs/xfs/xfs_vfsops.c index 36ea1b2094f2..ec85a2e24b52 100644 --- a/fs/xfs/xfs_vfsops.c +++ b/fs/xfs/xfs_vfsops.c | |||
@@ -1708,42 +1708,48 @@ xfs_parseargs( | |||
1708 | 1708 | ||
1709 | if (!strcmp(this_char, MNTOPT_LOGBUFS)) { | 1709 | if (!strcmp(this_char, MNTOPT_LOGBUFS)) { |
1710 | if (!value || !*value) { | 1710 | if (!value || !*value) { |
1711 | printk("XFS: %s option requires an argument\n", | 1711 | cmn_err(CE_WARN, |
1712 | "XFS: %s option requires an argument", | ||
1712 | this_char); | 1713 | this_char); |
1713 | return EINVAL; | 1714 | return EINVAL; |
1714 | } | 1715 | } |
1715 | args->logbufs = simple_strtoul(value, &eov, 10); | 1716 | args->logbufs = simple_strtoul(value, &eov, 10); |
1716 | } else if (!strcmp(this_char, MNTOPT_LOGBSIZE)) { | 1717 | } else if (!strcmp(this_char, MNTOPT_LOGBSIZE)) { |
1717 | if (!value || !*value) { | 1718 | if (!value || !*value) { |
1718 | printk("XFS: %s option requires an argument\n", | 1719 | cmn_err(CE_WARN, |
1720 | "XFS: %s option requires an argument", | ||
1719 | this_char); | 1721 | this_char); |
1720 | return EINVAL; | 1722 | return EINVAL; |
1721 | } | 1723 | } |
1722 | args->logbufsize = suffix_strtoul(value, &eov, 10); | 1724 | args->logbufsize = suffix_strtoul(value, &eov, 10); |
1723 | } else if (!strcmp(this_char, MNTOPT_LOGDEV)) { | 1725 | } else if (!strcmp(this_char, MNTOPT_LOGDEV)) { |
1724 | if (!value || !*value) { | 1726 | if (!value || !*value) { |
1725 | printk("XFS: %s option requires an argument\n", | 1727 | cmn_err(CE_WARN, |
1728 | "XFS: %s option requires an argument", | ||
1726 | this_char); | 1729 | this_char); |
1727 | return EINVAL; | 1730 | return EINVAL; |
1728 | } | 1731 | } |
1729 | strncpy(args->logname, value, MAXNAMELEN); | 1732 | strncpy(args->logname, value, MAXNAMELEN); |
1730 | } else if (!strcmp(this_char, MNTOPT_MTPT)) { | 1733 | } else if (!strcmp(this_char, MNTOPT_MTPT)) { |
1731 | if (!value || !*value) { | 1734 | if (!value || !*value) { |
1732 | printk("XFS: %s option requires an argument\n", | 1735 | cmn_err(CE_WARN, |
1736 | "XFS: %s option requires an argument", | ||
1733 | this_char); | 1737 | this_char); |
1734 | return EINVAL; | 1738 | return EINVAL; |
1735 | } | 1739 | } |
1736 | strncpy(args->mtpt, value, MAXNAMELEN); | 1740 | strncpy(args->mtpt, value, MAXNAMELEN); |
1737 | } else if (!strcmp(this_char, MNTOPT_RTDEV)) { | 1741 | } else if (!strcmp(this_char, MNTOPT_RTDEV)) { |
1738 | if (!value || !*value) { | 1742 | if (!value || !*value) { |
1739 | printk("XFS: %s option requires an argument\n", | 1743 | cmn_err(CE_WARN, |
1744 | "XFS: %s option requires an argument", | ||
1740 | this_char); | 1745 | this_char); |
1741 | return EINVAL; | 1746 | return EINVAL; |
1742 | } | 1747 | } |
1743 | strncpy(args->rtname, value, MAXNAMELEN); | 1748 | strncpy(args->rtname, value, MAXNAMELEN); |
1744 | } else if (!strcmp(this_char, MNTOPT_BIOSIZE)) { | 1749 | } else if (!strcmp(this_char, MNTOPT_BIOSIZE)) { |
1745 | if (!value || !*value) { | 1750 | if (!value || !*value) { |
1746 | printk("XFS: %s option requires an argument\n", | 1751 | cmn_err(CE_WARN, |
1752 | "XFS: %s option requires an argument", | ||
1747 | this_char); | 1753 | this_char); |
1748 | return EINVAL; | 1754 | return EINVAL; |
1749 | } | 1755 | } |
@@ -1752,7 +1758,8 @@ xfs_parseargs( | |||
1752 | args->iosizelog = (uint8_t) iosize; | 1758 | args->iosizelog = (uint8_t) iosize; |
1753 | } else if (!strcmp(this_char, MNTOPT_ALLOCSIZE)) { | 1759 | } else if (!strcmp(this_char, MNTOPT_ALLOCSIZE)) { |
1754 | if (!value || !*value) { | 1760 | if (!value || !*value) { |
1755 | printk("XFS: %s option requires an argument\n", | 1761 | cmn_err(CE_WARN, |
1762 | "XFS: %s option requires an argument", | ||
1756 | this_char); | 1763 | this_char); |
1757 | return EINVAL; | 1764 | return EINVAL; |
1758 | } | 1765 | } |
@@ -1761,7 +1768,8 @@ xfs_parseargs( | |||
1761 | args->iosizelog = ffs(iosize) - 1; | 1768 | args->iosizelog = ffs(iosize) - 1; |
1762 | } else if (!strcmp(this_char, MNTOPT_IHASHSIZE)) { | 1769 | } else if (!strcmp(this_char, MNTOPT_IHASHSIZE)) { |
1763 | if (!value || !*value) { | 1770 | if (!value || !*value) { |
1764 | printk("XFS: %s option requires an argument\n", | 1771 | cmn_err(CE_WARN, |
1772 | "XFS: %s option requires an argument", | ||
1765 | this_char); | 1773 | this_char); |
1766 | return EINVAL; | 1774 | return EINVAL; |
1767 | } | 1775 | } |
@@ -1782,7 +1790,8 @@ xfs_parseargs( | |||
1782 | } else if (!strcmp(this_char, MNTOPT_INO64)) { | 1790 | } else if (!strcmp(this_char, MNTOPT_INO64)) { |
1783 | args->flags |= XFSMNT_INO64; | 1791 | args->flags |= XFSMNT_INO64; |
1784 | #if !XFS_BIG_INUMS | 1792 | #if !XFS_BIG_INUMS |
1785 | printk("XFS: %s option not allowed on this system\n", | 1793 | cmn_err(CE_WARN, |
1794 | "XFS: %s option not allowed on this system", | ||
1786 | this_char); | 1795 | this_char); |
1787 | return EINVAL; | 1796 | return EINVAL; |
1788 | #endif | 1797 | #endif |
@@ -1792,14 +1801,16 @@ xfs_parseargs( | |||
1792 | args->flags |= XFSMNT_SWALLOC; | 1801 | args->flags |= XFSMNT_SWALLOC; |
1793 | } else if (!strcmp(this_char, MNTOPT_SUNIT)) { | 1802 | } else if (!strcmp(this_char, MNTOPT_SUNIT)) { |
1794 | if (!value || !*value) { | 1803 | if (!value || !*value) { |
1795 | printk("XFS: %s option requires an argument\n", | 1804 | cmn_err(CE_WARN, |
1805 | "XFS: %s option requires an argument", | ||
1796 | this_char); | 1806 | this_char); |
1797 | return EINVAL; | 1807 | return EINVAL; |
1798 | } | 1808 | } |
1799 | dsunit = simple_strtoul(value, &eov, 10); | 1809 | dsunit = simple_strtoul(value, &eov, 10); |
1800 | } else if (!strcmp(this_char, MNTOPT_SWIDTH)) { | 1810 | } else if (!strcmp(this_char, MNTOPT_SWIDTH)) { |
1801 | if (!value || !*value) { | 1811 | if (!value || !*value) { |
1802 | printk("XFS: %s option requires an argument\n", | 1812 | cmn_err(CE_WARN, |
1813 | "XFS: %s option requires an argument", | ||
1803 | this_char); | 1814 | this_char); |
1804 | return EINVAL; | 1815 | return EINVAL; |
1805 | } | 1816 | } |
@@ -1807,7 +1818,8 @@ xfs_parseargs( | |||
1807 | } else if (!strcmp(this_char, MNTOPT_64BITINODE)) { | 1818 | } else if (!strcmp(this_char, MNTOPT_64BITINODE)) { |
1808 | args->flags &= ~XFSMNT_32BITINODES; | 1819 | args->flags &= ~XFSMNT_32BITINODES; |
1809 | #if !XFS_BIG_INUMS | 1820 | #if !XFS_BIG_INUMS |
1810 | printk("XFS: %s option not allowed on this system\n", | 1821 | cmn_err(CE_WARN, |
1822 | "XFS: %s option not allowed on this system", | ||
1811 | this_char); | 1823 | this_char); |
1812 | return EINVAL; | 1824 | return EINVAL; |
1813 | #endif | 1825 | #endif |
@@ -1831,36 +1843,41 @@ xfs_parseargs( | |||
1831 | args->flags &= ~XFSMNT_ATTR2; | 1843 | args->flags &= ~XFSMNT_ATTR2; |
1832 | } else if (!strcmp(this_char, "osyncisdsync")) { | 1844 | } else if (!strcmp(this_char, "osyncisdsync")) { |
1833 | /* no-op, this is now the default */ | 1845 | /* no-op, this is now the default */ |
1834 | printk("XFS: osyncisdsync is now the default, option is deprecated.\n"); | 1846 | cmn_err(CE_WARN, |
1847 | "XFS: osyncisdsync is now the default, option is deprecated."); | ||
1835 | } else if (!strcmp(this_char, "irixsgid")) { | 1848 | } else if (!strcmp(this_char, "irixsgid")) { |
1836 | printk("XFS: irixsgid is now a sysctl(2) variable, option is deprecated.\n"); | 1849 | cmn_err(CE_WARN, |
1850 | "XFS: irixsgid is now a sysctl(2) variable, option is deprecated."); | ||
1837 | } else { | 1851 | } else { |
1838 | printk("XFS: unknown mount option [%s].\n", this_char); | 1852 | cmn_err(CE_WARN, |
1853 | "XFS: unknown mount option [%s].", this_char); | ||
1839 | return EINVAL; | 1854 | return EINVAL; |
1840 | } | 1855 | } |
1841 | } | 1856 | } |
1842 | 1857 | ||
1843 | if (args->flags & XFSMNT_NORECOVERY) { | 1858 | if (args->flags & XFSMNT_NORECOVERY) { |
1844 | if ((vfsp->vfs_flag & VFS_RDONLY) == 0) { | 1859 | if ((vfsp->vfs_flag & VFS_RDONLY) == 0) { |
1845 | printk("XFS: no-recovery mounts must be read-only.\n"); | 1860 | cmn_err(CE_WARN, |
1861 | "XFS: no-recovery mounts must be read-only."); | ||
1846 | return EINVAL; | 1862 | return EINVAL; |
1847 | } | 1863 | } |
1848 | } | 1864 | } |
1849 | 1865 | ||
1850 | if ((args->flags & XFSMNT_NOALIGN) && (dsunit || dswidth)) { | 1866 | if ((args->flags & XFSMNT_NOALIGN) && (dsunit || dswidth)) { |
1851 | printk( | 1867 | cmn_err(CE_WARN, |
1852 | "XFS: sunit and swidth options incompatible with the noalign option\n"); | 1868 | "XFS: sunit and swidth options incompatible with the noalign option"); |
1853 | return EINVAL; | 1869 | return EINVAL; |
1854 | } | 1870 | } |
1855 | 1871 | ||
1856 | if ((dsunit && !dswidth) || (!dsunit && dswidth)) { | 1872 | if ((dsunit && !dswidth) || (!dsunit && dswidth)) { |
1857 | printk("XFS: sunit and swidth must be specified together\n"); | 1873 | cmn_err(CE_WARN, |
1874 | "XFS: sunit and swidth must be specified together"); | ||
1858 | return EINVAL; | 1875 | return EINVAL; |
1859 | } | 1876 | } |
1860 | 1877 | ||
1861 | if (dsunit && (dswidth % dsunit != 0)) { | 1878 | if (dsunit && (dswidth % dsunit != 0)) { |
1862 | printk( | 1879 | cmn_err(CE_WARN, |
1863 | "XFS: stripe width (%d) must be a multiple of the stripe unit (%d)\n", | 1880 | "XFS: stripe width (%d) must be a multiple of the stripe unit (%d)", |
1864 | dswidth, dsunit); | 1881 | dswidth, dsunit); |
1865 | return EINVAL; | 1882 | return EINVAL; |
1866 | } | 1883 | } |