In this paper, an algorithm is proposed for resource allocation in downlink Long Term Evolution (LTE). In the proposed algorithm, similar to several previous works, multiuser diversity is exploited to increase channel utilization; in addition, buffer status is explicitly taken into account such that a maximal number of downlink packets in the buffer can be transmitted. Hence, the proposed algorithm contains two phases. In the first phase, downlink resource blocks are allocated based on, e.g., channel information; then, in the second phase the result is feeded into a modified bipartite matching algorithm in which resource blocks can be reallocated according to buffer status of downlink users. It is shown from numerical results that the proposed algorithm can significantly improve downlink data throughput, compared to the previous work that attempts only to maximize channel sum rate.