Author: bdrewery
Date: Mon Mar 21 23:22:19 2016
New Revision: 297172
URL: https://svnweb.freebsd.org/changeset/base/297172

Log:
  Consolidate common link(2) logic.
  
  MFC after:    2 weeks
  Sponsored by: EMC / Isilon Storage Division

Modified:
  head/sys/dev/filemon/filemon_wrapper.c

Modified: head/sys/dev/filemon/filemon_wrapper.c
==============================================================================
--- head/sys/dev/filemon/filemon_wrapper.c      Mon Mar 21 22:29:24 2016        
(r297171)
+++ head/sys/dev/filemon/filemon_wrapper.c      Mon Mar 21 23:22:19 2016        
(r297172)
@@ -237,58 +237,46 @@ filemon_wrapper_rename(struct thread *td
        return (ret);
 }
 
-static int
-filemon_wrapper_link(struct thread *td, struct link_args *uap)
+static void
+_filemon_wrapper_link(struct thread *td, char *upath1, char *upath2)
 {
-       int ret;
-       size_t done;
-       size_t len;
        struct filemon *filemon;
+       size_t len;
 
-       if ((ret = sys_link(td, uap)) == 0) {
-               if ((filemon = filemon_proc_get(curproc)) != NULL) {
-                       copyinstr(uap->path, filemon->fname1,
-                           sizeof(filemon->fname1), &done);
-                       copyinstr(uap->link, filemon->fname2,
-                           sizeof(filemon->fname2), &done);
+       if ((filemon = filemon_proc_get(curproc)) != NULL) {
+               copyinstr(upath1, filemon->fname1,
+                   sizeof(filemon->fname1), NULL);
+               copyinstr(upath2, filemon->fname2,
+                   sizeof(filemon->fname2), NULL);
 
-                       len = snprintf(filemon->msgbufr,
-                           sizeof(filemon->msgbufr), "L %d '%s' '%s'\n",
-                           curproc->p_pid, filemon->fname1, filemon->fname2);
+               len = snprintf(filemon->msgbufr,
+                   sizeof(filemon->msgbufr), "L %d '%s' '%s'\n",
+                   curproc->p_pid, filemon->fname1, filemon->fname2);
 
-                       filemon_output(filemon, filemon->msgbufr, len);
+               filemon_output(filemon, filemon->msgbufr, len);
 
-                       filemon_drop(filemon);
-               }
+               filemon_drop(filemon);
        }
-
-       return (ret);
 }
 
 static int
-filemon_wrapper_symlink(struct thread *td, struct symlink_args *uap)
+filemon_wrapper_link(struct thread *td, struct link_args *uap)
 {
        int ret;
-       size_t done;
-       size_t len;
-       struct filemon *filemon;
 
-       if ((ret = sys_symlink(td, uap)) == 0) {
-               if ((filemon = filemon_proc_get(curproc)) != NULL) {
-                       copyinstr(uap->path, filemon->fname1,
-                           sizeof(filemon->fname1), &done);
-                       copyinstr(uap->link, filemon->fname2,
-                           sizeof(filemon->fname2), &done);
+       if ((ret = sys_link(td, uap)) == 0)
+               _filemon_wrapper_link(td, uap->path, uap->link);
 
-                       len = snprintf(filemon->msgbufr,
-                           sizeof(filemon->msgbufr), "L %d '%s' '%s'\n",
-                           curproc->p_pid, filemon->fname1, filemon->fname2);
+       return (ret);
+}
 
-                       filemon_output(filemon, filemon->msgbufr, len);
+static int
+filemon_wrapper_symlink(struct thread *td, struct symlink_args *uap)
+{
+       int ret;
 
-                       filemon_drop(filemon);
-               }
-       }
+       if ((ret = sys_symlink(td, uap)) == 0)
+               _filemon_wrapper_link(td, uap->path, uap->link);
 
        return (ret);
 }
@@ -297,26 +285,9 @@ static int
 filemon_wrapper_linkat(struct thread *td, struct linkat_args *uap)
 {
        int ret;
-       size_t done;
-       size_t len;
-       struct filemon *filemon;
-
-       if ((ret = sys_linkat(td, uap)) == 0) {
-               if ((filemon = filemon_proc_get(curproc)) != NULL) {
-                       copyinstr(uap->path1, filemon->fname1,
-                           sizeof(filemon->fname1), &done);
-                       copyinstr(uap->path2, filemon->fname2,
-                           sizeof(filemon->fname2), &done);
-
-                       len = snprintf(filemon->msgbufr,
-                           sizeof(filemon->msgbufr), "L %d '%s' '%s'\n",
-                           curproc->p_pid, filemon->fname1, filemon->fname2);
-
-                       filemon_output(filemon, filemon->msgbufr, len);
 
-                       filemon_drop(filemon);
-               }
-       }
+       if ((ret = sys_linkat(td, uap)) == 0)
+               _filemon_wrapper_link(td, uap->path1, uap->path2);
 
        return (ret);
 }
_______________________________________________
svn-src-all@freebsd.org mailing list
https://lists.freebsd.org/mailman/listinfo/svn-src-all
To unsubscribe, send any mail to "svn-src-all-unsubscr...@freebsd.org"

Reply via email to