Make the standard create_file request handle serial ports too, and
remove the create_serial request.

diff --git a/server/file.c b/server/file.c
index a22d269..62bda24 100644
--- a/server/file.c
+++ b/server/file.c
@@ -162,9 +162,9 @@
 }
 
 
-static struct file *create_file( const char *nameptr, size_t len, unsigned int access,
-                                 unsigned int sharing, int create, unsigned int options,
-                                 unsigned int attrs, int removable )
+static struct object *create_file( const char *nameptr, size_t len, unsigned int access,
+                                   unsigned int sharing, int create, unsigned int options,
+                                   unsigned int attrs, int removable )
 {
     struct file *file;
     int hash, flags;
@@ -231,7 +231,15 @@
         release_object( file );
         return NULL;
     }
-    return file;
+    /* check for serial port */
+    if (S_ISCHR(mode) && is_serial_fd( file->fd ))
+    {
+        struct object *obj = create_serial( file->fd, file->options );
+        release_object( file );
+        return obj;
+    }
+
+    return &file->obj;
 
  error:
     free( name );
@@ -599,7 +607,7 @@
 /* create a file */
 DECL_HANDLER(create_file)
 {
-    struct file *file;
+    struct object *file;
 
     reply->handle = 0;
     if ((file = create_file( get_req_data(), get_req_data_size(), req->access,