X-Git-Url: https://git.whamcloud.com/?a=blobdiff_plain;f=lustre%2Fobdclass%2Flinux%2Flinux-obdo.c;h=ace43ab054376c08761e014f90b59f86b9ce9d18;hb=6712478e79588e73e28c7ccac3afc7ac2368a4f3;hp=5af2ff661955bfdd34b95afbc09c04a902479fdb;hpb=5f432f4ff1717352aaacb93959d6353b8468f88b;p=fs%2Flustre-release.git diff --git a/lustre/obdclass/linux/linux-obdo.c b/lustre/obdclass/linux/linux-obdo.c index 5af2ff6..ace43ab 100644 --- a/lustre/obdclass/linux/linux-obdo.c +++ b/lustre/obdclass/linux/linux-obdo.c @@ -15,11 +15,7 @@ * * You should have received a copy of the GNU General Public License * version 2 along with this program; If not, see - * http://www.sun.com/software/products/lustre/docs/GPLv2.pdf - * - * Please contact Sun Microsystems, Inc., 4150 Network Circle, Santa Clara, - * CA 95054 USA or visit www.sun.com if you need additional information or - * have any questions. + * http://www.gnu.org/licenses/gpl-2.0.html * * GPL HEADER END */ @@ -27,7 +23,7 @@ * Copyright (c) 2007, 2010, Oracle and/or its affiliates. All rights reserved. * Use is subject to license terms. * - * Copyright (c) 2012, 2013, Intel Corporation. + * Copyright (c) 2012, 2014, Intel Corporation. */ /* * This file is part of Lustre, http://www.lustre.org/ @@ -42,22 +38,15 @@ #define DEBUG_SUBSYSTEM S_CLASS -#ifndef __KERNEL__ -#include -#else +#include #include +#include /* for PAGE_SIZE */ #include -#include -#endif - -#ifdef __KERNEL__ -#include -#include /* for PAGE_CACHE_SIZE */ /*FIXME: Just copy from obdo_from_inode*/ -void obdo_from_la(struct obdo *dst, struct lu_attr *la, __u64 valid) +void obdo_from_la(struct obdo *dst, const struct lu_attr *la, u64 valid) { - obd_flag newvalid = 0; + u64 newvalid = 0; if (valid & LA_ATIME) { dst->o_atime = la->la_atime; @@ -97,6 +86,10 @@ void obdo_from_la(struct obdo *dst, struct lu_attr *la, __u64 valid) dst->o_gid = la->la_gid; newvalid |= OBD_MD_FLGID; } + if (valid & LA_PROJID) { + dst->o_projid = la->la_projid; + newvalid |= OBD_MD_FLPROJID; + } if (valid & LA_FLAGS) { dst->o_flags = la->la_flags; newvalid |= OBD_MD_FLFLAGS; @@ -106,9 +99,9 @@ void obdo_from_la(struct obdo *dst, struct lu_attr *la, __u64 valid) EXPORT_SYMBOL(obdo_from_la); /*FIXME: Just copy from obdo_from_inode*/ -void la_from_obdo(struct lu_attr *dst, const struct obdo *obdo, obd_flag valid) +void la_from_obdo(struct lu_attr *dst, const struct obdo *obdo, u64 valid) { - __u64 newvalid = 0; + u64 newvalid = 0; valid &= obdo->o_valid; @@ -150,6 +143,10 @@ void la_from_obdo(struct lu_attr *dst, const struct obdo *obdo, obd_flag valid) dst->la_gid = obdo->o_gid; newvalid |= LA_GID; } + if (valid & OBD_MD_FLPROJID) { + dst->la_projid = obdo->o_projid; + newvalid |= LA_PROJID; + } if (valid & OBD_MD_FLFLAGS) { dst->la_flags = obdo->o_flags; newvalid |= LA_FLAGS; @@ -157,79 +154,3 @@ void la_from_obdo(struct lu_attr *dst, const struct obdo *obdo, obd_flag valid) dst->la_valid = newvalid; } EXPORT_SYMBOL(la_from_obdo); - -void obdo_refresh_inode(struct inode *dst, struct obdo *src, obd_flag valid) -{ - valid &= src->o_valid; - - if (valid & (OBD_MD_FLCTIME | OBD_MD_FLMTIME)) - CDEBUG(D_INODE, - "valid "LPX64", cur time %lu/%lu, new "LPU64"/"LPU64"\n", - src->o_valid, LTIME_S(dst->i_mtime), - LTIME_S(dst->i_ctime), src->o_mtime, src->o_ctime); - - if (valid & OBD_MD_FLATIME && src->o_atime > LTIME_S(dst->i_atime)) - LTIME_S(dst->i_atime) = src->o_atime; - if (valid & OBD_MD_FLMTIME && src->o_mtime > LTIME_S(dst->i_mtime)) - LTIME_S(dst->i_mtime) = src->o_mtime; - if (valid & OBD_MD_FLCTIME && src->o_ctime > LTIME_S(dst->i_ctime)) - LTIME_S(dst->i_ctime) = src->o_ctime; - if (valid & OBD_MD_FLSIZE) - i_size_write(dst, src->o_size); - /* optimum IO size */ - if (valid & OBD_MD_FLBLKSZ && src->o_blksize > (1 << dst->i_blkbits)) - dst->i_blkbits = ffs(src->o_blksize) - 1; - - if (dst->i_blkbits < PAGE_CACHE_SHIFT) - dst->i_blkbits = PAGE_CACHE_SHIFT; - - /* allocation of space */ - if (valid & OBD_MD_FLBLOCKS && src->o_blocks > dst->i_blocks) - /* - * XXX shouldn't overflow be checked here like in - * obdo_to_inode(). - */ - dst->i_blocks = src->o_blocks; -} -EXPORT_SYMBOL(obdo_refresh_inode); - -void obdo_to_inode(struct inode *dst, struct obdo *src, obd_flag valid) -{ - valid &= src->o_valid; - - LASSERTF(!(valid & (OBD_MD_FLTYPE | OBD_MD_FLGENER | OBD_MD_FLFID | - OBD_MD_FLID | OBD_MD_FLGROUP)), - "object "DOSTID", valid %x\n", POSTID(&src->o_oi), valid); - - if (valid & (OBD_MD_FLCTIME | OBD_MD_FLMTIME)) - CDEBUG(D_INODE, - "valid "LPX64", cur time %lu/%lu, new "LPU64"/"LPU64"\n", - src->o_valid, LTIME_S(dst->i_mtime), - LTIME_S(dst->i_ctime), src->o_mtime, src->o_ctime); - - if (valid & OBD_MD_FLATIME) - LTIME_S(dst->i_atime) = src->o_atime; - if (valid & OBD_MD_FLMTIME) - LTIME_S(dst->i_mtime) = src->o_mtime; - if (valid & OBD_MD_FLCTIME && src->o_ctime > LTIME_S(dst->i_ctime)) - LTIME_S(dst->i_ctime) = src->o_ctime; - if (valid & OBD_MD_FLSIZE) - i_size_write(dst, src->o_size); - if (valid & OBD_MD_FLBLOCKS) { /* allocation of space */ - dst->i_blocks = src->o_blocks; - if (dst->i_blocks < src->o_blocks) /* overflow */ - dst->i_blocks = -1; - } - if (valid & OBD_MD_FLBLKSZ) - dst->i_blkbits = ffs(src->o_blksize)-1; - if (valid & OBD_MD_FLMODE) - dst->i_mode = (dst->i_mode & S_IFMT) | (src->o_mode & ~S_IFMT); - if (valid & OBD_MD_FLUID) - dst->i_uid = make_kuid(&init_user_ns, src->o_uid); - if (valid & OBD_MD_FLGID) - dst->i_gid = make_kgid(&init_user_ns, src->o_gid); - if (valid & OBD_MD_FLFLAGS) - dst->i_flags = src->o_flags; -} -EXPORT_SYMBOL(obdo_to_inode); -#endif