ext2_lookup.c (221128) | ext2_lookup.c (221166) |
---|---|
1/*- 2 * modified for Lites 1.1 3 * 4 * Aug 1995, Godmar Back (gback@cs.utah.edu) 5 * University of Utah, Department of Computer Science 6 */ 7/*- 8 * Copyright (c) 1989, 1993 --- 24 unchanged lines hidden (view full) --- 33 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 34 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 35 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 36 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 37 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 38 * SUCH DAMAGE. 39 * 40 * @(#)ufs_lookup.c 8.6 (Berkeley) 4/1/94 | 1/*- 2 * modified for Lites 1.1 3 * 4 * Aug 1995, Godmar Back (gback@cs.utah.edu) 5 * University of Utah, Department of Computer Science 6 */ 7/*- 8 * Copyright (c) 1989, 1993 --- 24 unchanged lines hidden (view full) --- 33 * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS 34 * OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) 35 * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT 36 * LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY 37 * OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF 38 * SUCH DAMAGE. 39 * 40 * @(#)ufs_lookup.c 8.6 (Berkeley) 4/1/94 |
41 * $FreeBSD: head/sys/fs/ext2fs/ext2_lookup.c 221128 2011-04-27 18:25:35Z jhb $ | 41 * $FreeBSD: head/sys/fs/ext2fs/ext2_lookup.c 221166 2011-04-28 14:27:17Z jhb $ |
42 */ 43 44#include <sys/param.h> 45#include <sys/systm.h> 46#include <sys/namei.h> 47#include <sys/bio.h> 48#include <sys/buf.h> 49#include <sys/endian.h> --- 835 unchanged lines hidden (view full) --- 885 } else { 886 if (spacefree < newentrysize) 887 panic("ext2_direnter: compact2"); 888 newdir.e2d_reclen = spacefree; 889 ep->e2d_reclen = dsize; 890 ep = (struct ext2fs_direct_2 *)((char *)ep + dsize); 891 } 892 bcopy((caddr_t)&newdir, (caddr_t)ep, (u_int)newentrysize); | 42 */ 43 44#include <sys/param.h> 45#include <sys/systm.h> 46#include <sys/namei.h> 47#include <sys/bio.h> 48#include <sys/buf.h> 49#include <sys/endian.h> --- 835 unchanged lines hidden (view full) --- 885 } else { 886 if (spacefree < newentrysize) 887 panic("ext2_direnter: compact2"); 888 newdir.e2d_reclen = spacefree; 889 ep->e2d_reclen = dsize; 890 ep = (struct ext2fs_direct_2 *)((char *)ep + dsize); 891 } 892 bcopy((caddr_t)&newdir, (caddr_t)ep, (u_int)newentrysize); |
893 error = bwrite(bp); | 893 if (DOINGASYNC(dvp)) { 894 bdwrite(bp); 895 error = 0; 896 } else { 897 error = bwrite(bp); 898 } |
894 dp->i_flag |= IN_CHANGE | IN_UPDATE; 895 if (!error && dp->i_endoff && dp->i_endoff < dp->i_size) 896 error = ext2_truncate(dvp, (off_t)dp->i_endoff, IO_SYNC, 897 cnp->cn_cred, cnp->cn_thread); 898 return (error); 899} 900 901/* --- 40 unchanged lines hidden (view full) --- 942 return (error); 943 944 /* Set 'rep' to the entry being removed. */ 945 if (dp->i_count == 0) 946 rep = ep; 947 else 948 rep = (struct ext2fs_direct_2 *)((char *)ep + ep->e2d_reclen); 949 ep->e2d_reclen += rep->e2d_reclen; | 899 dp->i_flag |= IN_CHANGE | IN_UPDATE; 900 if (!error && dp->i_endoff && dp->i_endoff < dp->i_size) 901 error = ext2_truncate(dvp, (off_t)dp->i_endoff, IO_SYNC, 902 cnp->cn_cred, cnp->cn_thread); 903 return (error); 904} 905 906/* --- 40 unchanged lines hidden (view full) --- 947 return (error); 948 949 /* Set 'rep' to the entry being removed. */ 950 if (dp->i_count == 0) 951 rep = ep; 952 else 953 rep = (struct ext2fs_direct_2 *)((char *)ep + ep->e2d_reclen); 954 ep->e2d_reclen += rep->e2d_reclen; |
950 error = bwrite(bp); | 955 if (DOINGASYNC(dvp) && dp->i_count != 0) 956 bdwrite(bp); 957 else 958 error = bwrite(bp); |
951 dp->i_flag |= IN_CHANGE | IN_UPDATE; 952 return (error); 953} 954 955/* 956 * Rewrite an existing directory entry to point at the inode 957 * supplied. The parameters describing the directory entry are 958 * set up by a call to namei. --- 145 unchanged lines hidden --- | 959 dp->i_flag |= IN_CHANGE | IN_UPDATE; 960 return (error); 961} 962 963/* 964 * Rewrite an existing directory entry to point at the inode 965 * supplied. The parameters describing the directory entry are 966 * set up by a call to namei. --- 145 unchanged lines hidden --- |