@@ -166,7 +166,7 @@ int ksmbd_vfs_create(struct ksmbd_work *work, const char *name, umode_t mode)
166
166
struct dentry * dentry ;
167
167
int err ;
168
168
169
- dentry = kern_path_create (AT_FDCWD , name , & path , 0 );
169
+ dentry = kern_path_create (AT_FDCWD , name , & path , LOOKUP_NO_SYMLINKS );
170
170
if (IS_ERR (dentry )) {
171
171
err = PTR_ERR (dentry );
172
172
if (err != - ENOENT )
@@ -203,7 +203,8 @@ int ksmbd_vfs_mkdir(struct ksmbd_work *work, const char *name, umode_t mode)
203
203
struct dentry * dentry ;
204
204
int err ;
205
205
206
- dentry = kern_path_create (AT_FDCWD , name , & path , LOOKUP_DIRECTORY );
206
+ dentry = kern_path_create (AT_FDCWD , name , & path ,
207
+ LOOKUP_NO_SYMLINKS | LOOKUP_DIRECTORY );
207
208
if (IS_ERR (dentry )) {
208
209
err = PTR_ERR (dentry );
209
210
if (err != - EEXIST )
@@ -588,16 +589,11 @@ int ksmbd_vfs_remove_file(struct ksmbd_work *work, char *name)
588
589
struct path path ;
589
590
struct dentry * parent ;
590
591
int err ;
591
- int flags = 0 ;
592
592
593
593
if (ksmbd_override_fsids (work ))
594
594
return - ENOMEM ;
595
595
596
- if (test_share_config_flag (work -> tcon -> share_conf ,
597
- KSMBD_SHARE_FLAG_FOLLOW_SYMLINKS ))
598
- flags = LOOKUP_FOLLOW ;
599
-
600
- err = kern_path (name , flags , & path );
596
+ err = kern_path (name , LOOKUP_NO_SYMLINKS , & path );
601
597
if (err ) {
602
598
ksmbd_debug (VFS , "can't get %s, err %d\n" , name , err );
603
599
ksmbd_revert_fsids (work );
@@ -652,24 +648,19 @@ int ksmbd_vfs_link(struct ksmbd_work *work, const char *oldname,
652
648
struct path oldpath , newpath ;
653
649
struct dentry * dentry ;
654
650
int err ;
655
- int flags = 0 ;
656
651
657
652
if (ksmbd_override_fsids (work ))
658
653
return - ENOMEM ;
659
654
660
- if (test_share_config_flag (work -> tcon -> share_conf ,
661
- KSMBD_SHARE_FLAG_FOLLOW_SYMLINKS ))
662
- flags = LOOKUP_FOLLOW ;
663
-
664
- err = kern_path (oldname , flags , & oldpath );
655
+ err = kern_path (oldname , LOOKUP_NO_SYMLINKS , & oldpath );
665
656
if (err ) {
666
657
pr_err ("cannot get linux path for %s, err = %d\n" ,
667
658
oldname , err );
668
659
goto out1 ;
669
660
}
670
661
671
662
dentry = kern_path_create (AT_FDCWD , newname , & newpath ,
672
- flags | LOOKUP_REVAL );
663
+ LOOKUP_NO_SYMLINKS | LOOKUP_REVAL );
673
664
if (IS_ERR (dentry )) {
674
665
err = PTR_ERR (dentry );
675
666
pr_err ("path create err for %s, err %d\n" , newname , err );
@@ -788,7 +779,6 @@ int ksmbd_vfs_fp_rename(struct ksmbd_work *work, struct ksmbd_file *fp,
788
779
struct dentry * src_dent , * trap_dent , * src_child ;
789
780
char * dst_name ;
790
781
int err ;
791
- int flags ;
792
782
793
783
dst_name = extract_last_component (newname );
794
784
if (!dst_name )
@@ -797,12 +787,8 @@ int ksmbd_vfs_fp_rename(struct ksmbd_work *work, struct ksmbd_file *fp,
797
787
src_dent_parent = dget_parent (fp -> filp -> f_path .dentry );
798
788
src_dent = fp -> filp -> f_path .dentry ;
799
789
800
- flags = LOOKUP_DIRECTORY ;
801
- if (test_share_config_flag (work -> tcon -> share_conf ,
802
- KSMBD_SHARE_FLAG_FOLLOW_SYMLINKS ))
803
- flags |= LOOKUP_FOLLOW ;
804
-
805
- err = kern_path (newname , flags , & dst_path );
790
+ err = kern_path (newname , LOOKUP_NO_SYMLINKS | LOOKUP_DIRECTORY ,
791
+ & dst_path );
806
792
if (err ) {
807
793
ksmbd_debug (VFS , "Cannot get path for %s [%d]\n" , newname , err );
808
794
goto out ;
@@ -861,7 +847,7 @@ int ksmbd_vfs_truncate(struct ksmbd_work *work, const char *name,
861
847
int err = 0 ;
862
848
863
849
if (name ) {
864
- err = kern_path (name , 0 , & path );
850
+ err = kern_path (name , LOOKUP_NO_SYMLINKS , & path );
865
851
if (err ) {
866
852
pr_err ("cannot get linux path for %s, err %d\n" ,
867
853
name , err );
0 commit comments