9p: constify ->d_name handling

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

Al Viro 7880b43b 7ce7d89f

+42 -42
+5 -5
fs/9p/fid.c
··· 91 * dentry names. 92 */ 93 static int build_path_from_dentry(struct v9fs_session_info *v9ses, 94 - struct dentry *dentry, char ***names) 95 { 96 int n = 0, i; 97 - char **wnames; 98 struct dentry *ds; 99 100 for (ds = dentry; !IS_ROOT(ds); ds = ds->d_parent) ··· 105 goto err_out; 106 107 for (ds = dentry, i = (n-1); i >= 0; i--, ds = ds->d_parent) 108 - wnames[i] = (char *)ds->d_name.name; 109 110 *names = wnames; 111 return n; ··· 117 kuid_t uid, int any) 118 { 119 struct dentry *ds; 120 - char **wnames, *uname; 121 int i, n, l, clone, access; 122 struct v9fs_session_info *v9ses; 123 struct p9_fid *fid, *old_fid = NULL; ··· 137 fid = v9fs_fid_find(ds, uid, any); 138 if (fid) { 139 /* Found the parent fid do a lookup with that */ 140 - fid = p9_client_walk(fid, 1, (char **)&dentry->d_name.name, 1); 141 goto fid_out; 142 } 143 up_read(&v9ses->rename_sem);
··· 91 * dentry names. 92 */ 93 static int build_path_from_dentry(struct v9fs_session_info *v9ses, 94 + struct dentry *dentry, const unsigned char ***names) 95 { 96 int n = 0, i; 97 + const unsigned char **wnames; 98 struct dentry *ds; 99 100 for (ds = dentry; !IS_ROOT(ds); ds = ds->d_parent) ··· 105 goto err_out; 106 107 for (ds = dentry, i = (n-1); i >= 0; i--, ds = ds->d_parent) 108 + wnames[i] = ds->d_name.name; 109 110 *names = wnames; 111 return n; ··· 117 kuid_t uid, int any) 118 { 119 struct dentry *ds; 120 + const unsigned char **wnames, *uname; 121 int i, n, l, clone, access; 122 struct v9fs_session_info *v9ses; 123 struct p9_fid *fid, *old_fid = NULL; ··· 137 fid = v9fs_fid_find(ds, uid, any); 138 if (fid) { 139 /* Found the parent fid do a lookup with that */ 140 + fid = p9_client_walk(fid, 1, &dentry->d_name.name, 1); 141 goto fid_out; 142 } 143 up_read(&v9ses->rename_sem);
+5 -5
fs/9p/vfs_inode.c
··· 643 struct dentry *dentry, char *extension, u32 perm, u8 mode) 644 { 645 int err; 646 - char *name; 647 struct p9_fid *dfid, *ofid, *fid; 648 struct inode *inode; 649 ··· 652 err = 0; 653 ofid = NULL; 654 fid = NULL; 655 - name = (char *) dentry->d_name.name; 656 dfid = v9fs_parent_fid(dentry); 657 if (IS_ERR(dfid)) { 658 err = PTR_ERR(dfid); ··· 788 struct v9fs_session_info *v9ses; 789 struct p9_fid *dfid, *fid; 790 struct inode *inode; 791 - char *name; 792 793 p9_debug(P9_DEBUG_VFS, "dir: %p dentry: (%pd) %p flags: %x\n", 794 dir, dentry, dentry, flags); ··· 802 if (IS_ERR(dfid)) 803 return ERR_CAST(dfid); 804 805 - name = (char *) dentry->d_name.name; 806 fid = p9_client_walk(dfid, 1, &name, 1); 807 if (IS_ERR(fid)) { 808 if (fid == ERR_PTR(-ENOENT)) { ··· 1012 } 1013 v9fs_blank_wstat(&wstat); 1014 wstat.muid = v9ses->uname; 1015 - wstat.name = (char *) new_dentry->d_name.name; 1016 retval = p9_client_wstat(oldfid, &wstat); 1017 1018 clunk_newdir:
··· 643 struct dentry *dentry, char *extension, u32 perm, u8 mode) 644 { 645 int err; 646 + const unsigned char *name; 647 struct p9_fid *dfid, *ofid, *fid; 648 struct inode *inode; 649 ··· 652 err = 0; 653 ofid = NULL; 654 fid = NULL; 655 + name = dentry->d_name.name; 656 dfid = v9fs_parent_fid(dentry); 657 if (IS_ERR(dfid)) { 658 err = PTR_ERR(dfid); ··· 788 struct v9fs_session_info *v9ses; 789 struct p9_fid *dfid, *fid; 790 struct inode *inode; 791 + const unsigned char *name; 792 793 p9_debug(P9_DEBUG_VFS, "dir: %p dentry: (%pd) %p flags: %x\n", 794 dir, dentry, dentry, flags); ··· 802 if (IS_ERR(dfid)) 803 return ERR_CAST(dfid); 804 805 + name = dentry->d_name.name; 806 fid = p9_client_walk(dfid, 1, &name, 1); 807 if (IS_ERR(fid)) { 808 if (fid == ERR_PTR(-ENOENT)) { ··· 1012 } 1013 v9fs_blank_wstat(&wstat); 1014 wstat.muid = v9ses->uname; 1015 + wstat.name = new_dentry->d_name.name; 1016 retval = p9_client_wstat(oldfid, &wstat); 1017 1018 clunk_newdir:
+10 -10
fs/9p/vfs_inode_dotl.c
··· 244 int err = 0; 245 kgid_t gid; 246 umode_t mode; 247 - char *name = NULL; 248 struct p9_qid qid; 249 struct inode *inode; 250 struct p9_fid *fid = NULL; ··· 269 270 v9ses = v9fs_inode2v9ses(dir); 271 272 - name = (char *) dentry->d_name.name; 273 p9_debug(P9_DEBUG_VFS, "name:%s flags:0x%x mode:0x%hx\n", 274 name, flags, omode); 275 ··· 385 struct v9fs_session_info *v9ses; 386 struct p9_fid *fid = NULL, *dfid = NULL; 387 kgid_t gid; 388 - char *name; 389 umode_t mode; 390 struct inode *inode; 391 struct p9_qid qid; ··· 416 err); 417 goto error; 418 } 419 - name = (char *) dentry->d_name.name; 420 err = p9_client_mkdir_dotl(dfid, name, mode, gid, &qid); 421 if (err < 0) 422 goto error; ··· 678 { 679 int err; 680 kgid_t gid; 681 - char *name; 682 struct p9_qid qid; 683 struct inode *inode; 684 struct p9_fid *dfid; 685 struct p9_fid *fid = NULL; 686 struct v9fs_session_info *v9ses; 687 688 - name = (char *) dentry->d_name.name; 689 p9_debug(P9_DEBUG_VFS, "%lu,%s,%s\n", dir->i_ino, name, symname); 690 v9ses = v9fs_inode2v9ses(dir); 691 ··· 699 gid = v9fs_get_fsgid_for_create(dir); 700 701 /* Server doesn't alter fid on TSYMLINK. Hence no need to clone it. */ 702 - err = p9_client_symlink(dfid, name, (char *)symname, gid, &qid); 703 704 if (err < 0) { 705 p9_debug(P9_DEBUG_VFS, "p9_client_symlink failed %d\n", err); ··· 775 if (IS_ERR(oldfid)) 776 return PTR_ERR(oldfid); 777 778 - err = p9_client_link(dfid, oldfid, (char *)dentry->d_name.name); 779 780 if (err < 0) { 781 p9_debug(P9_DEBUG_VFS, "p9_client_link failed %d\n", err); ··· 812 { 813 int err; 814 kgid_t gid; 815 - char *name; 816 umode_t mode; 817 struct v9fs_session_info *v9ses; 818 struct p9_fid *fid = NULL, *dfid = NULL; ··· 842 err); 843 goto error; 844 } 845 - name = (char *) dentry->d_name.name; 846 847 err = p9_client_mknod_dotl(dfid, name, mode, rdev, gid, &qid); 848 if (err < 0)
··· 244 int err = 0; 245 kgid_t gid; 246 umode_t mode; 247 + const unsigned char *name = NULL; 248 struct p9_qid qid; 249 struct inode *inode; 250 struct p9_fid *fid = NULL; ··· 269 270 v9ses = v9fs_inode2v9ses(dir); 271 272 + name = dentry->d_name.name; 273 p9_debug(P9_DEBUG_VFS, "name:%s flags:0x%x mode:0x%hx\n", 274 name, flags, omode); 275 ··· 385 struct v9fs_session_info *v9ses; 386 struct p9_fid *fid = NULL, *dfid = NULL; 387 kgid_t gid; 388 + const unsigned char *name; 389 umode_t mode; 390 struct inode *inode; 391 struct p9_qid qid; ··· 416 err); 417 goto error; 418 } 419 + name = dentry->d_name.name; 420 err = p9_client_mkdir_dotl(dfid, name, mode, gid, &qid); 421 if (err < 0) 422 goto error; ··· 678 { 679 int err; 680 kgid_t gid; 681 + const unsigned char *name; 682 struct p9_qid qid; 683 struct inode *inode; 684 struct p9_fid *dfid; 685 struct p9_fid *fid = NULL; 686 struct v9fs_session_info *v9ses; 687 688 + name = dentry->d_name.name; 689 p9_debug(P9_DEBUG_VFS, "%lu,%s,%s\n", dir->i_ino, name, symname); 690 v9ses = v9fs_inode2v9ses(dir); 691 ··· 699 gid = v9fs_get_fsgid_for_create(dir); 700 701 /* Server doesn't alter fid on TSYMLINK. Hence no need to clone it. */ 702 + err = p9_client_symlink(dfid, name, symname, gid, &qid); 703 704 if (err < 0) { 705 p9_debug(P9_DEBUG_VFS, "p9_client_symlink failed %d\n", err); ··· 775 if (IS_ERR(oldfid)) 776 return PTR_ERR(oldfid); 777 778 + err = p9_client_link(dfid, oldfid, dentry->d_name.name); 779 780 if (err < 0) { 781 p9_debug(P9_DEBUG_VFS, "p9_client_link failed %d\n", err); ··· 812 { 813 int err; 814 kgid_t gid; 815 + const unsigned char *name; 816 umode_t mode; 817 struct v9fs_session_info *v9ses; 818 struct p9_fid *fid = NULL, *dfid = NULL; ··· 842 err); 843 goto error; 844 } 845 + name = dentry->d_name.name; 846 847 err = p9_client_mknod_dotl(dfid, name, mode, rdev, gid, &qid); 848 if (err < 0)
+4 -4
include/net/9p/9p.h
··· 402 u32 atime; 403 u32 mtime; 404 u64 length; 405 - char *name; 406 - char *uid; 407 - char *gid; 408 - char *muid; 409 char *extension; /* 9p2000.u extensions */ 410 kuid_t n_uid; /* 9p2000.u extensions */ 411 kgid_t n_gid; /* 9p2000.u extensions */
··· 402 u32 atime; 403 u32 mtime; 404 u64 length; 405 + const char *name; 406 + const char *uid; 407 + const char *gid; 408 + const char *muid; 409 char *extension; /* 9p2000.u extensions */ 410 kuid_t n_uid; /* 9p2000.u extensions */ 411 kgid_t n_gid; /* 9p2000.u extensions */
+9 -9
include/net/9p/client.h
··· 223 void p9_client_disconnect(struct p9_client *clnt); 224 void p9_client_begin_disconnect(struct p9_client *clnt); 225 struct p9_fid *p9_client_attach(struct p9_client *clnt, struct p9_fid *afid, 226 - char *uname, kuid_t n_uname, char *aname); 227 struct p9_fid *p9_client_walk(struct p9_fid *oldfid, uint16_t nwname, 228 - char **wnames, int clone); 229 int p9_client_open(struct p9_fid *fid, int mode); 230 - int p9_client_fcreate(struct p9_fid *fid, char *name, u32 perm, int mode, 231 char *extension); 232 - int p9_client_link(struct p9_fid *fid, struct p9_fid *oldfid, char *newname); 233 - int p9_client_symlink(struct p9_fid *fid, char *name, char *symname, kgid_t gid, 234 - struct p9_qid *qid); 235 - int p9_client_create_dotl(struct p9_fid *ofid, char *name, u32 flags, u32 mode, 236 kgid_t gid, struct p9_qid *qid); 237 int p9_client_clunk(struct p9_fid *fid); 238 int p9_client_fsync(struct p9_fid *fid, int datasync); ··· 250 struct p9_stat_dotl *p9_client_getattr_dotl(struct p9_fid *fid, 251 u64 request_mask); 252 253 - int p9_client_mknod_dotl(struct p9_fid *oldfid, char *name, int mode, 254 dev_t rdev, kgid_t gid, struct p9_qid *); 255 - int p9_client_mkdir_dotl(struct p9_fid *fid, char *name, int mode, 256 kgid_t gid, struct p9_qid *); 257 int p9_client_lock_dotl(struct p9_fid *fid, struct p9_flock *flock, u8 *status); 258 int p9_client_getlock_dotl(struct p9_fid *fid, struct p9_getlock *fl);
··· 223 void p9_client_disconnect(struct p9_client *clnt); 224 void p9_client_begin_disconnect(struct p9_client *clnt); 225 struct p9_fid *p9_client_attach(struct p9_client *clnt, struct p9_fid *afid, 226 + const char *uname, kuid_t n_uname, const char *aname); 227 struct p9_fid *p9_client_walk(struct p9_fid *oldfid, uint16_t nwname, 228 + const unsigned char * const *wnames, int clone); 229 int p9_client_open(struct p9_fid *fid, int mode); 230 + int p9_client_fcreate(struct p9_fid *fid, const char *name, u32 perm, int mode, 231 char *extension); 232 + int p9_client_link(struct p9_fid *fid, struct p9_fid *oldfid, const char *newname); 233 + int p9_client_symlink(struct p9_fid *fid, const char *name, const char *symname, 234 + kgid_t gid, struct p9_qid *qid); 235 + int p9_client_create_dotl(struct p9_fid *ofid, const char *name, u32 flags, u32 mode, 236 kgid_t gid, struct p9_qid *qid); 237 int p9_client_clunk(struct p9_fid *fid); 238 int p9_client_fsync(struct p9_fid *fid, int datasync); ··· 250 struct p9_stat_dotl *p9_client_getattr_dotl(struct p9_fid *fid, 251 u64 request_mask); 252 253 + int p9_client_mknod_dotl(struct p9_fid *oldfid, const char *name, int mode, 254 dev_t rdev, kgid_t gid, struct p9_qid *); 255 + int p9_client_mkdir_dotl(struct p9_fid *fid, const char *name, int mode, 256 kgid_t gid, struct p9_qid *); 257 int p9_client_lock_dotl(struct p9_fid *fid, struct p9_flock *flock, u8 *status); 258 int p9_client_getlock_dotl(struct p9_fid *fid, struct p9_getlock *fl);
+9 -9
net/9p/client.c
··· 1101 EXPORT_SYMBOL(p9_client_begin_disconnect); 1102 1103 struct p9_fid *p9_client_attach(struct p9_client *clnt, struct p9_fid *afid, 1104 - char *uname, kuid_t n_uname, char *aname) 1105 { 1106 int err = 0; 1107 struct p9_req_t *req; ··· 1149 EXPORT_SYMBOL(p9_client_attach); 1150 1151 struct p9_fid *p9_client_walk(struct p9_fid *oldfid, uint16_t nwname, 1152 - char **wnames, int clone) 1153 { 1154 int err; 1155 struct p9_client *clnt; ··· 1271 } 1272 EXPORT_SYMBOL(p9_client_open); 1273 1274 - int p9_client_create_dotl(struct p9_fid *ofid, char *name, u32 flags, u32 mode, 1275 kgid_t gid, struct p9_qid *qid) 1276 { 1277 int err = 0; ··· 1316 } 1317 EXPORT_SYMBOL(p9_client_create_dotl); 1318 1319 - int p9_client_fcreate(struct p9_fid *fid, char *name, u32 perm, int mode, 1320 char *extension) 1321 { 1322 int err; ··· 1361 } 1362 EXPORT_SYMBOL(p9_client_fcreate); 1363 1364 - int p9_client_symlink(struct p9_fid *dfid, char *name, char *symtgt, kgid_t gid, 1365 - struct p9_qid *qid) 1366 { 1367 int err = 0; 1368 struct p9_client *clnt; ··· 1395 } 1396 EXPORT_SYMBOL(p9_client_symlink); 1397 1398 - int p9_client_link(struct p9_fid *dfid, struct p9_fid *oldfid, char *newname) 1399 { 1400 struct p9_client *clnt; 1401 struct p9_req_t *req; ··· 2117 } 2118 EXPORT_SYMBOL(p9_client_readdir); 2119 2120 - int p9_client_mknod_dotl(struct p9_fid *fid, char *name, int mode, 2121 dev_t rdev, kgid_t gid, struct p9_qid *qid) 2122 { 2123 int err; ··· 2148 } 2149 EXPORT_SYMBOL(p9_client_mknod_dotl); 2150 2151 - int p9_client_mkdir_dotl(struct p9_fid *fid, char *name, int mode, 2152 kgid_t gid, struct p9_qid *qid) 2153 { 2154 int err;
··· 1101 EXPORT_SYMBOL(p9_client_begin_disconnect); 1102 1103 struct p9_fid *p9_client_attach(struct p9_client *clnt, struct p9_fid *afid, 1104 + const char *uname, kuid_t n_uname, const char *aname) 1105 { 1106 int err = 0; 1107 struct p9_req_t *req; ··· 1149 EXPORT_SYMBOL(p9_client_attach); 1150 1151 struct p9_fid *p9_client_walk(struct p9_fid *oldfid, uint16_t nwname, 1152 + const unsigned char * const *wnames, int clone) 1153 { 1154 int err; 1155 struct p9_client *clnt; ··· 1271 } 1272 EXPORT_SYMBOL(p9_client_open); 1273 1274 + int p9_client_create_dotl(struct p9_fid *ofid, const char *name, u32 flags, u32 mode, 1275 kgid_t gid, struct p9_qid *qid) 1276 { 1277 int err = 0; ··· 1316 } 1317 EXPORT_SYMBOL(p9_client_create_dotl); 1318 1319 + int p9_client_fcreate(struct p9_fid *fid, const char *name, u32 perm, int mode, 1320 char *extension) 1321 { 1322 int err; ··· 1361 } 1362 EXPORT_SYMBOL(p9_client_fcreate); 1363 1364 + int p9_client_symlink(struct p9_fid *dfid, const char *name, 1365 + const char *symtgt, kgid_t gid, struct p9_qid *qid) 1366 { 1367 int err = 0; 1368 struct p9_client *clnt; ··· 1395 } 1396 EXPORT_SYMBOL(p9_client_symlink); 1397 1398 + int p9_client_link(struct p9_fid *dfid, struct p9_fid *oldfid, const char *newname) 1399 { 1400 struct p9_client *clnt; 1401 struct p9_req_t *req; ··· 2117 } 2118 EXPORT_SYMBOL(p9_client_readdir); 2119 2120 + int p9_client_mknod_dotl(struct p9_fid *fid, const char *name, int mode, 2121 dev_t rdev, kgid_t gid, struct p9_qid *qid) 2122 { 2123 int err; ··· 2148 } 2149 EXPORT_SYMBOL(p9_client_mknod_dotl); 2150 2151 + int p9_client_mkdir_dotl(struct p9_fid *fid, const char *name, int mode, 2152 kgid_t gid, struct p9_qid *qid) 2153 { 2154 int err;