Commit 8264613def2e5c4f12bc3167713090fd172e6055

Authored by Al Viro
1 parent 0a0d8a4675

[PATCH] switch quota_on-related stuff to kern_path()

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>

Showing 4 changed files with 37 additions and 37 deletions Side-by-side Diff

... ... @@ -1805,19 +1805,19 @@
1805 1805 }
1806 1806  
1807 1807 /* Actual function called from quotactl() */
1808   -int vfs_quota_on(struct super_block *sb, int type, int format_id, char *path,
  1808 +int vfs_quota_on(struct super_block *sb, int type, int format_id, char *name,
1809 1809 int remount)
1810 1810 {
1811   - struct nameidata nd;
  1811 + struct path path;
1812 1812 int error;
1813 1813  
1814 1814 if (remount)
1815 1815 return vfs_quota_on_remount(sb, type);
1816 1816  
1817   - error = path_lookup(path, LOOKUP_FOLLOW, &nd);
  1817 + error = kern_path(name, LOOKUP_FOLLOW, &path);
1818 1818 if (!error) {
1819   - error = vfs_quota_on_path(sb, type, format_id, &nd.path);
1820   - path_put(&nd.path);
  1819 + error = vfs_quota_on_path(sb, type, format_id, &path);
  1820 + path_put(&path);
1821 1821 }
1822 1822 return error;
1823 1823 }
... ... @@ -2783,30 +2783,30 @@
2783 2783 * Standard function to be called on quota_on
2784 2784 */
2785 2785 static int ext3_quota_on(struct super_block *sb, int type, int format_id,
2786   - char *path, int remount)
  2786 + char *name, int remount)
2787 2787 {
2788 2788 int err;
2789   - struct nameidata nd;
  2789 + struct path path;
2790 2790  
2791 2791 if (!test_opt(sb, QUOTA))
2792 2792 return -EINVAL;
2793   - /* When remounting, no checks are needed and in fact, path is NULL */
  2793 + /* When remounting, no checks are needed and in fact, name is NULL */
2794 2794 if (remount)
2795   - return vfs_quota_on(sb, type, format_id, path, remount);
  2795 + return vfs_quota_on(sb, type, format_id, name, remount);
2796 2796  
2797   - err = path_lookup(path, LOOKUP_FOLLOW, &nd);
  2797 + err = kern_path(name, LOOKUP_FOLLOW, &path);
2798 2798 if (err)
2799 2799 return err;
2800 2800  
2801 2801 /* Quotafile not on the same filesystem? */
2802   - if (nd.path.mnt->mnt_sb != sb) {
2803   - path_put(&nd.path);
  2802 + if (path.mnt->mnt_sb != sb) {
  2803 + path_put(&path);
2804 2804 return -EXDEV;
2805 2805 }
2806 2806 /* Journaling quota? */
2807 2807 if (EXT3_SB(sb)->s_qf_names[type]) {
2808 2808 /* Quotafile not of fs root? */
2809   - if (nd.path.dentry->d_parent->d_inode != sb->s_root->d_inode)
  2809 + if (path.dentry->d_parent != sb->s_root)
2810 2810 printk(KERN_WARNING
2811 2811 "EXT3-fs: Quota file not on filesystem root. "
2812 2812 "Journaled quota will not work.\n");
... ... @@ -2816,7 +2816,7 @@
2816 2816 * When we journal data on quota file, we have to flush journal to see
2817 2817 * all updates to the file when we bypass pagecache...
2818 2818 */
2819   - if (ext3_should_journal_data(nd.path.dentry->d_inode)) {
  2819 + if (ext3_should_journal_data(path.dentry->d_inode)) {
2820 2820 /*
2821 2821 * We don't need to lock updates but journal_flush() could
2822 2822 * otherwise be livelocked...
... ... @@ -2826,8 +2826,8 @@
2826 2826 journal_unlock_updates(EXT3_SB(sb)->s_journal);
2827 2827 }
2828 2828  
2829   - err = vfs_quota_on_path(sb, type, format_id, &nd.path);
2830   - path_put(&nd.path);
  2829 + err = vfs_quota_on_path(sb, type, format_id, &path);
  2830 + path_put(&path);
2831 2831 return err;
2832 2832 }
2833 2833  
... ... @@ -3328,30 +3328,30 @@
3328 3328 * Standard function to be called on quota_on
3329 3329 */
3330 3330 static int ext4_quota_on(struct super_block *sb, int type, int format_id,
3331   - char *path, int remount)
  3331 + char *name, int remount)
3332 3332 {
3333 3333 int err;
3334   - struct nameidata nd;
  3334 + struct path path;
3335 3335  
3336 3336 if (!test_opt(sb, QUOTA))
3337 3337 return -EINVAL;
3338   - /* When remounting, no checks are needed and in fact, path is NULL */
  3338 + /* When remounting, no checks are needed and in fact, name is NULL */
3339 3339 if (remount)
3340   - return vfs_quota_on(sb, type, format_id, path, remount);
  3340 + return vfs_quota_on(sb, type, format_id, name, remount);
3341 3341  
3342   - err = path_lookup(path, LOOKUP_FOLLOW, &nd);
  3342 + err = kern_path(name, LOOKUP_FOLLOW, &path);
3343 3343 if (err)
3344 3344 return err;
3345 3345  
3346 3346 /* Quotafile not on the same filesystem? */
3347   - if (nd.path.mnt->mnt_sb != sb) {
3348   - path_put(&nd.path);
  3347 + if (path.mnt->mnt_sb != sb) {
  3348 + path_put(&path);
3349 3349 return -EXDEV;
3350 3350 }
3351 3351 /* Journaling quota? */
3352 3352 if (EXT4_SB(sb)->s_qf_names[type]) {
3353 3353 /* Quotafile not in fs root? */
3354   - if (nd.path.dentry->d_parent->d_inode != sb->s_root->d_inode)
  3354 + if (path.dentry->d_parent != sb->s_root)
3355 3355 printk(KERN_WARNING
3356 3356 "EXT4-fs: Quota file not on filesystem root. "
3357 3357 "Journaled quota will not work.\n");
... ... @@ -3361,7 +3361,7 @@
3361 3361 * When we journal data on quota file, we have to flush journal to see
3362 3362 * all updates to the file when we bypass pagecache...
3363 3363 */
3364   - if (ext4_should_journal_data(nd.path.dentry->d_inode)) {
  3364 + if (ext4_should_journal_data(path.dentry->d_inode)) {
3365 3365 /*
3366 3366 * We don't need to lock updates but journal_flush() could
3367 3367 * otherwise be livelocked...
3368 3368  
... ... @@ -3370,13 +3370,13 @@
3370 3370 err = jbd2_journal_flush(EXT4_SB(sb)->s_journal);
3371 3371 jbd2_journal_unlock_updates(EXT4_SB(sb)->s_journal);
3372 3372 if (err) {
3373   - path_put(&nd.path);
  3373 + path_put(&path);
3374 3374 return err;
3375 3375 }
3376 3376 }
3377 3377  
3378   - err = vfs_quota_on_path(sb, type, format_id, &nd.path);
3379   - path_put(&nd.path);
  3378 + err = vfs_quota_on_path(sb, type, format_id, &path);
  3379 + path_put(&path);
3380 3380 return err;
3381 3381 }
3382 3382  
... ... @@ -2058,10 +2058,10 @@
2058 2058 * Standard function to be called on quota_on
2059 2059 */
2060 2060 static int reiserfs_quota_on(struct super_block *sb, int type, int format_id,
2061   - char *path, int remount)
  2061 + char *name, int remount)
2062 2062 {
2063 2063 int err;
2064   - struct nameidata nd;
  2064 + struct path path;
2065 2065 struct inode *inode;
2066 2066 struct reiserfs_transaction_handle th;
2067 2067  
2068 2068  
2069 2069  
... ... @@ -2069,16 +2069,16 @@
2069 2069 return -EINVAL;
2070 2070 /* No more checks needed? Path and format_id are bogus anyway... */
2071 2071 if (remount)
2072   - return vfs_quota_on(sb, type, format_id, path, 1);
2073   - err = path_lookup(path, LOOKUP_FOLLOW, &nd);
  2072 + return vfs_quota_on(sb, type, format_id, name, 1);
  2073 + err = kern_path(name, LOOKUP_FOLLOW, &path);
2074 2074 if (err)
2075 2075 return err;
2076 2076 /* Quotafile not on the same filesystem? */
2077   - if (nd.path.mnt->mnt_sb != sb) {
  2077 + if (path.mnt->mnt_sb != sb) {
2078 2078 err = -EXDEV;
2079 2079 goto out;
2080 2080 }
2081   - inode = nd.path.dentry->d_inode;
  2081 + inode = path.dentry->d_inode;
2082 2082 /* We must not pack tails for quota files on reiserfs for quota IO to work */
2083 2083 if (!(REISERFS_I(inode)->i_flags & i_nopack_mask)) {
2084 2084 err = reiserfs_unpack(inode, NULL);
... ... @@ -2094,7 +2094,7 @@
2094 2094 /* Journaling quota? */
2095 2095 if (REISERFS_SB(sb)->s_qf_names[type]) {
2096 2096 /* Quotafile not of fs root? */
2097   - if (nd.path.dentry->d_parent->d_inode != sb->s_root->d_inode)
  2097 + if (path.dentry->d_parent != sb->s_root)
2098 2098 reiserfs_warning(sb,
2099 2099 "reiserfs: Quota file not on filesystem root. "
2100 2100 "Journalled quota will not work.");
2101 2101  
... ... @@ -2113,9 +2113,9 @@
2113 2113 if (err)
2114 2114 goto out;
2115 2115 }
2116   - err = vfs_quota_on_path(sb, type, format_id, &nd.path);
  2116 + err = vfs_quota_on_path(sb, type, format_id, &path);
2117 2117 out:
2118   - path_put(&nd.path);
  2118 + path_put(&path);
2119 2119 return err;
2120 2120 }
2121 2121