Whamcloud - gitweb
LU-3382 build: clean unused link dependencies
[fs/lustre-release.git] / lustre / liblustre / file.c
index 4b8dad3..5a30299 100644 (file)
 
 #define DEBUG_SUBSYSTEM S_LLITE
 
-#include <stdlib.h>
+#include <errno.h>
+#include <fcntl.h>
 #include <string.h>
-#include <assert.h>
-#include <time.h>
-#include <sys/types.h>
 #include <sys/stat.h>
-#include <sys/queue.h>
-#include <fcntl.h>
-
+#include <sys/types.h>
+#include <libcfs/libcfs.h>
+#include <lustre/lustre_idl.h>
+#include <liblustre.h>
+#include <lclient.h>
+#include <lustre_lib.h>
+#include <lustre_lite.h>
+#include <lustre_mdc.h>
+#include <lustre_net.h>
+#include <lustre_req_layout.h>
+#include <obd.h>
+#include <obd_class.h>
+#include <obd_support.h>
 #include "llite_lib.h"
 
 /* Pack the required supplementary groups into the supplied groups array.
  * array in case it might be useful.  Not needed if doing an MDS-side upcall. */
 void ll_i2gids(__u32 *suppgids, struct inode *i1, struct inode *i2)
 {
-        LASSERT(i1 != NULL);
-        LASSERT(suppgids != NULL);
-
-        if (cfs_curproc_is_in_groups(i1->i_stbuf.st_gid))
-                suppgids[0] = i1->i_stbuf.st_gid;
-        else
-                suppgids[0] = -1;
-
-        if (i2) {
-                if (cfs_curproc_is_in_groups(i2->i_stbuf.st_gid))
-                        suppgids[1] = i2->i_stbuf.st_gid;
-                else
-                        suppgids[1] = -1;
-        } else {
-                suppgids[1] = -1;
-        }
+       LASSERT(i1 != NULL);
+       LASSERT(suppgids != NULL);
+
+       if (in_group_p(i1->i_stbuf.st_gid))
+               suppgids[0] = i1->i_stbuf.st_gid;
+       else
+               suppgids[0] = -1;
+
+       if (i2) {
+               if (in_group_p(i2->i_stbuf.st_gid))
+                       suppgids[1] = i2->i_stbuf.st_gid;
+               else
+                       suppgids[1] = -1;
+       } else {
+               suppgids[1] = -1;
+       }
 }
 
 void llu_prep_md_op_data(struct md_op_data *op_data, struct inode *i1,
@@ -95,7 +103,6 @@ void llu_prep_md_op_data(struct md_op_data *op_data, struct inode *i1,
         else
                 fid_zero(&op_data->op_fid2);
 
-        op_data->op_opc = opc;
         op_data->op_name = name;
         op_data->op_mode = mode;
         op_data->op_namelen = namelen;
@@ -173,8 +180,7 @@ int llu_local_open(struct llu_inode_info *lli, struct lookup_intent *it)
         fd->fd_mds_och.och_fid   = lli->lli_fid;
         lli->lli_file_data = fd;
         llu_ioepoch_open(lli, body->ioepoch);
-        md_set_open_replay_data(lli->lli_sbi->ll_md_exp,
-                                &fd->fd_mds_och, it->d.lustre.it_data);
+       md_set_open_replay_data(lli->lli_sbi->ll_md_exp, &fd->fd_mds_och, it);
 
         RETURN(0);
 }
@@ -213,10 +219,15 @@ int llu_iop_open(struct pnode *pnode, int flags, mode_t mode)
         if (!S_ISREG(st->st_mode))
                 GOTO(out_release, rc = 0);
 
-       if (lli->lli_has_smd)
-                flags &= ~O_LOV_DELAY_CREATE;
-        /*XXX: open_flags are overwritten and the previous ones are lost */
-        lli->lli_open_flags = flags & ~(O_CREAT | O_EXCL | O_TRUNC);
+       if (lli->lli_has_smd && cl_is_lov_delay_create(flags)) {
+               /* a bit ugly, but better than changing the open() API */
+               unsigned int tmp_flags = flags;
+
+               cl_lov_delay_create_clear(&tmp_flags);
+               flags = tmp_flags;
+       }
+       /*XXX: open_flags are overwritten and the previous ones are lost */
+       lli->lli_open_flags = flags & ~(O_CREAT | O_EXCL | O_TRUNC);
 
  out_release:
         request = it->d.lustre.it_data;